OculusGo 上的多个视频,Android - 应用崩溃

multiple videos on OculusGo, Android - app is crashing

[编辑] 我正在准备 OculusGo 的应用程序 = Android 在场景中有 4 个字符由视频剪辑表示。 每个视频大小在 10mb - 30mb 之间。

所有视频都带有着色器GoogleVR/Unlit/TransparentOverlay 这些视频使用 Adob​​e 编码器编码为 WebM/VP9/keep alpha。 视频进一步 t运行 统一编码为 Android,VP8(再次)。

在场景开始时从资源文件夹加载视频,然后在播放它们时从每个视频中调用 VideoPlayer.Play(),最后它们一起播放。 (一个接一个开始,一起继续)。

问题是: 当第三个视频应该播放时,我的应用程序崩溃了。 当我“准备”视频时它不会崩溃,但只会在“VideoPlayer.Play()”

这是我当前的代码:

public float waiting;
public AudioSource characterAudio;

VideoPlayer videoPlayer;
bool videoStarted = true;

void Awake () {
    
    videoPlayer = GetComponent<VideoPlayer>();
}

private void Update()
{
    if (characterAudio != null)
    {
        if (characterAudio.isPlaying && videoStarted)
        {
            StartCoroutine(StartVideo());
            videoStarted = false; 
            Debug.Log(characterAudio.name + " called once from update");
        }
    }
}

IEnumerator StartVideo()
{
    yield return new WaitForSeconds(waiting);
    videoPlayer.enabled = true;
    videoPlayer.Prepare();
    while(!videoPlayer.isPrepared)
    {
        Debug.Log("video is preparing");
        yield return null;
    }

    videoPlayer.Play();
    Debug.Log("videoStarted, char name is: " + characterAudio.name);
}

这是我从 logcat 得到的错误(使用命令:logcat |grep -i unity)

ActivityManager: Force removing ActivityRecord

Consumer closed input channel or an error occurred. events=0x9

Channel is unrecoverably broken and will be disposed!

InputDispatcher: Attempted to unregister already unregistered input channel

请帮忙,我已经尝试 两周 以同时将这些视频发送到 运行。

我还在这里阅读了有关使用不同线程的信息:https://gamedev.stackexchange.com/questions/113096/how-to-not-freeze-the-main-thread-in-unity 关于同时播放的视频:

我运行logcat(不是unity one),这是我在视频准备结束后得到的:

Screenshot from terminal

我通过以下步骤解决了这个问题:

  1. 我没有同时播放 4 个不同的视频并使用四个视频的内存,而是使用一个视频 - 除以 4 - 每个角色在一个视频上都有一个 运行 的“插槽”。
  2. 我用了一个 material - 而不是使用 4 material 秒,一个 material 来播放视频。 material 显示所有 4 个字符的视频,因此为了正确显示字符,我偏移了 material 渲染纹理 x、y 位置和偏移量,因此在四个不同的位置只显示一个字符场景。

所以为了总结而不是用四个不同的 material 加载和播放 4 个视频并在系统上造成过载,我在 1 个 material 上播放了 1 个视频。 申请运行顺利。