在 Unity 中播放视频之前的白框而不是自定义缩略图
White frame before video plays in Unity instead of a custom thumbnail
我在开始播放视频前加载了一个缩略图,但后来播放视频时,先是一个白框,然后才开始播放。我怎样才能避免这个白框??
这是我的代码-
video.GetComponent<RawImage>().texture = thumbnailTex;
//Play the video:
RenderTexture rt = new RenderTexture(1920, 1080, 16, RenderTextureFormat.ARGB32);
rt.Create();
video.GetComponent<RawImage>().texture =rt;
video.GetComponent<RawImage>().targetTexture=rt;
video.GetComponent<VideoPlayer>().url = "www....";
video.GetComponent<VideoPlayer>().Play();
// white frame, and then the video is playing
您需要先等待并测试视频是否可以播放
如果上面的代码不是已经在一个协程中就更好了。发生的事情是你在玩家有机会 download/load 第一帧之前调用播放。然后显示你的渲染纹理。
video.GetComponent().url = "...";
video.GetComponent().Prepare();
while (!video.GetComponent().isPrepared)
yield return new WaitForEndOfFrame();
video.GetComponent().frame = 0; //just incase it's not at the first frame
video.GetComponent().Play();
//now display your render texture
我在开始播放视频前加载了一个缩略图,但后来播放视频时,先是一个白框,然后才开始播放。我怎样才能避免这个白框??
这是我的代码-
video.GetComponent<RawImage>().texture = thumbnailTex;
//Play the video:
RenderTexture rt = new RenderTexture(1920, 1080, 16, RenderTextureFormat.ARGB32);
rt.Create();
video.GetComponent<RawImage>().texture =rt;
video.GetComponent<RawImage>().targetTexture=rt;
video.GetComponent<VideoPlayer>().url = "www....";
video.GetComponent<VideoPlayer>().Play();
// white frame, and then the video is playing
您需要先等待并测试视频是否可以播放
如果上面的代码不是已经在一个协程中就更好了。发生的事情是你在玩家有机会 download/load 第一帧之前调用播放。然后显示你的渲染纹理。
video.GetComponent().url = "...";
video.GetComponent().Prepare();
while (!video.GetComponent().isPrepared)
yield return new WaitForEndOfFrame();
video.GetComponent().frame = 0; //just incase it's not at the first frame
video.GetComponent().Play();
//now display your render texture