最近需要使用videoplay组件处理一些从服务端拉取视频播放的需求,但是出现了一个奇怪的空指针崩溃问题:
上网查了一轮后发现这个是unity的bug,videoPlay使用 url 去拉取视频播放后调用stop会奔溃。
unity修复日志:
因为我现在使用的是 2021.3.20f1版本,项目升级到 2021.3.21f1后解决了这个问题。
如果无法升级版本的话,也有一个方案可以解决这个问题,先调用videoPlay.Pause()后延迟一会再去调用videoPlay.Stop(),也能快速解决这个问题:
public void Stop()
{
StartCoroutine(StopRoutine());
}
private IEnumerator StopRoutine()
{
_videoPlayer.Pause();
_videoPlayer.frame = 0;
_videoPlayer.url = "";
yield return new WaitForSeconds(1f);
_videoPlayer.Stop();
}