之前unity实现在RawImage上播放视频主要是通过movieTexture,而现在这个方法已经被抛弃,采用VideoPlayer来实现,实现的原理是将VideoPlayerd的视频渲染到UGUI的RawImage上。
private VideoPlayer videoPlayer; private RawImage rawImage; void Start() {
//获取场景中对应的组件
videoPlayer = this.GetComponent<VideoPlayer>();
rawImage = this.GetComponent<RawImage>();
}
// Update is called once per frame
void Update()
{
//如果videoPlayer没有对应的视频texture,则返回
if (videoPlayer.texture == null)
{
return;
}
//把VideoPlayerd的视频渲染到UGUI的RawImage
rawImage.texture = videoPlayer.texture;
在测试时发现在电脑端是可以正常在RawImage上播放视频,但是打包到手机端时无法播放,经查阅官方api,发现安卓端支持的视频格式限制比较多,以下是安卓端的一些视频格式要求,同样ios也有一些限制,可以查看相关文档。
[视频格式要求]https://developer.android.com/guide/topics/media/media-formats#recommendations
在unity中选中视频,在安卓模块下修改视频格式,改为支持的H264,再次打包可以在手机端播放视频。
|