Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从VideoPlayer源URL访问维度(宽度/高度)_C#_Unity3d_Video_Unity5 - Fatal编程技术网

C# 从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 =

我正在进行一个Unity项目,该项目要求我下载一个视频文件(mp4格式)并使用VideoPlayer组件播放。因为文件是在运行时下载的,所以我实际上必须通过url将其“流”到下载位置,而不是将其作为视频剪辑加载

为了精确地调整视频将要播放的目标渲染器和游戏对象的大小,我需要视频文件本身的尺寸。因为它不是我不能使用的视频剪辑:

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,但是视频是用字母框写的,所以我不希望得到一个正方形的结果)。谢谢你的帮助(两次)!我怀疑你访问了其他东西,确切地说是视频播放器中纹理的属性。不客气!