我正在开发一个Unity项目,该项目需要我下载视频文件(mp4格式)并使用VideoPlayer组件进行播放。由于该文件是在运行时下载的,因此与将其作为VideoClip加载相比,我实际上必须通过URL将其“流式传输”到其下载位置。
为了准确调整视频将要播放到的目标RenderTexture和GameObject的大小,我需要视频文件本身的尺寸。因为它不是VideoClip,所以我不能使用:
VideoClip clip = videoPlayer.clip;
float videoWidth = clip.width;
float videoHeight = clip.height;
因为我使用的是源URL,而不是VideoClip,所以它将返回null。
我可以通过某种方式直接从文件中获取视频尺寸吗?
最佳答案
您可以从VideoPlayer构造的Texture中检索这些信息。
获取VideoPlayer
VideoPlayer videoPlayer = GetComponent<VideoPlayer>();
获取纹理VideoPlayer
Texture vidTex = videoPlayer.texture;
获取VideoPlayer尺寸的宽度/高度
float videoWidth = vidTex.width;
float videoHeight = vidTex.height;
确保仅在
videoPlayer.isPrepared
为true
之后获得纹理。有关如何播放视频使其显示在RawImage
组件上的完整代码,请参见我的other答案。