C# 从VideoPlayer源URL访问维度(宽度/高度)
我正在进行一个Unity项目,该项目要求我下载一个视频文件(mp4格式)并使用VideoPlayer组件播放。因为文件是在运行时下载的,所以我实际上必须通过url将其“流”到下载位置,而不是将其作为视频剪辑加载 为了精确地调整视频将要播放的目标渲染器和游戏对象的大小,我需要视频文件本身的尺寸。因为它不是我不能使用的视频剪辑:C# 从VideoPlayer源URL访问维度(宽度/高度),c#,unity3d,video,unity5,C#,Unity3d,Video,Unity5,我正在进行一个Unity项目,该项目要求我下载一个视频文件(mp4格式)并使用VideoPlayer组件播放。因为文件是在运行时下载的,所以我实际上必须通过url将其“流”到下载位置,而不是将其作为视频剪辑加载 为了精确地调整视频将要播放的目标渲染器和游戏对象的大小,我需要视频文件本身的尺寸。因为它不是我不能使用的视频剪辑: VideoClip clip = videoPlayer.clip; float videoWidth = clip.width; float videoHeight =
VideoClip clip = videoPlayer.clip;
float videoWidth = clip.width;
float videoHeight = clip.height;
因为我使用的是源URL而不是视频剪辑,所以返回null
我可以直接从文件中获取视频尺寸吗?您可以从VideoPlayer构建的纹理中检索这些信息 获取视频播放器
VideoPlayer videoPlayer = GetComponent<VideoPlayer>();
Texture vidTex = videoPlayer.texture;
获取视频播放器尺寸宽度/高度
float videoWidth = vidTex.width;
float videoHeight = vidTex.height;
确保仅在
videoPlayer.isPrepared
为true
后获取纹理。有关如何播放视频并使其显示在RawImage
组件上的完整代码,请参见我的答案。尝试执行clip.width代码>?剪辑为空,因为视频播放器的源设置为URL而不是VideoClip.Ok。2分钟后再查看。使用该解决方案对您有帮助吗<代码>视频播放器;player.texture.width;运动员、肌理、身高代码>起初我认为不是,但再次检查后,似乎你是绝对正确的。不知道我怎么会错过这个。谢谢我可以发誓我已经试过这个方法了。我想我只是没有得到我想要的结果(尺寸被列为1280 x 1280,但是视频是用字母框写的,所以我不希望得到一个正方形的结果)。谢谢你的帮助(两次)!我怀疑你访问了其他东西,确切地说是视频播放器中纹理的属性。不客气!