Проблема воспроизведения видео вызывает неисправность игры на Android BuildAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Проблема воспроизведения видео вызывает неисправность игры на Android Build

Сообщение Anonymous »

Я сталкиваюсь с странной проблемой в моем проекте Unity на Android. < /p>
В первой сцене игры я играю видео, как только игра начнет использовать видеоплайер Unity < /code>.
Вот что происходит: < /p>

Когда видео играет все, что работает, как нет, с помощью как все работает, и с вида, и с помощью, с оба, с оба, с оба, с помощью видео все работает. После того, как видео заканчивается, следующая сцена загружается, и элементы пользовательского интерфейса, такие как Canvas правильно исчезают. Понятно, что видео воспроизводится, потому что я могу слышать звук, но на экране ничего не отображается. Canvas не исчезает. Формат файла: .mp4 , размещенный в StreatingAssets .
Я также использую Graphics Jobs и многопоточный рендеринг , и я подозреваю, что они могут быть связаны. Кто -нибудь испытал подобное поведение или имел предложения о том, как исправить или отладить это?

Код: Выделить всё

public class LogoScene : MonoBehaviour
{
[SerializeField] private AudioMixer mixer;
[SerializeField] private VideoPlayer videoPlayer;
[SerializeField] private new Renderer renderer;

private void Start()
{
InitializeVideo();
}

private void InitializeVideo()
{
if (videoPlayer == null || renderer == null)
{
Debug.LogError("VideoPlayer or Renderer is not assigned!");
return;
}

string videoPath = System.IO.Path.Combine(Application.streamingAssetsPath, "LogoMotionMionik.mp4");

#if UNITY_ANDROID && !UNITY_EDITOR
videoPlayer.url = videoPath;
#else
videoPlayer.url = "file://" + videoPath;
#endif

videoPlayer.started += OnVideoStarted;
videoPlayer.loopPointReached += OnLoopPointReached;
videoPlayer.prepareCompleted += OnPrepareCompleted;
videoPlayer.errorReceived += OnVideoError;
videoPlayer.Prepare();
}

private void OnVideoError(VideoPlayer source, string message)
{
SceneManager.LoadScene(1);
}

private void OnPrepareCompleted(VideoPlayer source)
{
videoPlayer.Play();
}

private void OnVideoStarted(VideoPlayer source)
{
renderer.material.color = new Color(1f, 1f, 1f, 1f);
}

private void OnLoopPointReached(VideoPlayer source)
{
videoPlayer.started -= OnVideoStarted;
videoPlayer.loopPointReached -= OnLoopPointReached;
videoPlayer.prepareCompleted -= OnPrepareCompleted;
SceneManager.LoadScene(1);
}
}
Это также, где вещи не работают правильно в следующей сцене, если видео не может играть должным образом.

Код: Выделить всё

public void LoadScene(Scene scene, float fadeDelay = 0, float waitTime = 0)
{
if (SceneManager.GetActiveScene().name == scene.ToString()) return;

_canvasGroup.blocksRaycasts = true;
Application.backgroundLoadingPriority = ThreadPriority.High;

StartCoroutine(LoadSceneEnum(scene, fadeDelay, waitTime));
}

private IEnumerator LoadSceneEnum(Scene scene, float fadeDelay = 0, float waitTime = 0)
{
DOTween.Kill(_canvasGroup);
yield return _canvasGroup.DOFade(1, .3f).SetDelay(fadeDelay).SetEase(Ease.Linear).WaitForCompletion();

if (waitTime > 0)
yield return new WaitForSeconds(waitTime);

yield return null;

var asyncOperation = SceneManager.LoadSceneAsync(scene.ToString(), LoadSceneMode.Single);
asyncOperation.allowSceneActivation = false;

while (asyncOperation.progress < 0.9f)
{
yield return null;
}

yield return SceneActivationDelay;

asyncOperation.allowSceneActivation = true;

while (!asyncOperation.isDone)
{
yield return null;
}

👉_canvasGroup.DOFade(0, 1f);

**This code is where things don't work correctly, and the Canvas doesn't fade in if the video in the previous scene didn't play properly.**

Application.backgroundLoadingPriority = ThreadPriority.Low;
}
Любая помощь будет высоко оценена!

Подробнее здесь: https://stackoverflow.com/questions/796 ... roid-build
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»