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