从 VideoPlayer 源 URL 访问维度 (width/height)
Accessing dimensions (width/height) from a VideoPlayer source URL
我正在处理一个 Unity 项目,该项目要求我下载一个视频文件(mp4 格式)并使用 VideoPlayer 组件播放它。因为该文件是在运行时下载的,所以我实际上必须通过 url 将其 "stream" 到其下载位置,而不是将其作为 VideoClip 加载。
为了准确调整视频将播放到的目标 RenderTexture 和 GameObject 的大小,我需要视频文件本身的尺寸。因为它不是我不能使用的视频剪辑:
VideoClip clip = videoPlayer.clip;
float videoWidth = clip.width;
float videoHeight = clip.height;
因为我使用的是源 URL 而不是 VideoClip,所以这 return 无效。
我可以通过某种方式直接从文件中获取视频尺寸吗?
您可以从 VideoPlayer 构造的 Texture 中检索这些信息。
获取视频播放器
VideoPlayer videoPlayer = GetComponent<VideoPlayer>();
获取纹理视频播放器
Texture vidTex = videoPlayer.texture;
获取视频播放器维度width/height
float videoWidth = vidTex.width;
float videoHeight = vidTex.height;
确保只获取videoPlayer.isPrepared
之后的纹理true
。有关如何播放视频并使其显示在 RawImage
组件上的完整代码,请参阅我的 答案。
我正在处理一个 Unity 项目,该项目要求我下载一个视频文件(mp4 格式)并使用 VideoPlayer 组件播放它。因为该文件是在运行时下载的,所以我实际上必须通过 url 将其 "stream" 到其下载位置,而不是将其作为 VideoClip 加载。
为了准确调整视频将播放到的目标 RenderTexture 和 GameObject 的大小,我需要视频文件本身的尺寸。因为它不是我不能使用的视频剪辑:
VideoClip clip = videoPlayer.clip;
float videoWidth = clip.width;
float videoHeight = clip.height;
因为我使用的是源 URL 而不是 VideoClip,所以这 return 无效。
我可以通过某种方式直接从文件中获取视频尺寸吗?
您可以从 VideoPlayer 构造的 Texture 中检索这些信息。
获取视频播放器
VideoPlayer videoPlayer = GetComponent<VideoPlayer>();
获取纹理视频播放器
Texture vidTex = videoPlayer.texture;
获取视频播放器维度width/height
float videoWidth = vidTex.width;
float videoHeight = vidTex.height;
确保只获取videoPlayer.isPrepared
之后的纹理true
。有关如何播放视频并使其显示在 RawImage
组件上的完整代码,请参阅我的