美文网首页
Unity VideoPlayer以url方式播放视频

Unity VideoPlayer以url方式播放视频

作者: 不正经的搬砖工 | 来源:发表于2021-02-19 14:49 被阅读0次

    Unity提供了VideoPlayer组件用来播放视频,VideoPlayer加载视频的方式有两种,Videoclip和URL方式。我计划把视频资源放在StreamingAssets目录下使用,一开始想用VideoClip方式直接加载。结果发现将视频拖放到StreamingAssets目录下时,并没有自动转换为VideoClip格式,而拖放到其它目录下则可转换为VideoClip,这又是Unity的潜规则。此路走不通只能使用URL方式加载了。

    1、开始直接如下拼接URL地址,Editor下运行可以正常加载,然后Android运行时无法正常加播放。

    VideoPlayer vp = gameObject.GetComponent<VideoPlayer>();

    vp.url = Application.streamingAssetsPath + "/" + “test.mp4”;

    2、Android手机查看Log发现如下错误:

    (1)AndroidVideoMedia: Error opening extractor: -10000

    网上查询发现该原因可能是由于Google在API28之后禁止使用明文网路导致,我们需要修改AndroidManifest,设置usesCleartextTraffic为true:

    <application

            android:icon="@mipmap/app_icon"

            android:label="@string/app_name"

            android:usesCleartextTraffic="true"

            android:theme="@style/UnityThemeSelector">

    (2)按(1)改完再打包测试仍然不能正常播放,但这次错误码变了,

    AndroidVideoMedia: Error opening extractor: -10002

    网上查询发现说是Unity本身有Bug,针对Android-10系统VideoPlayer不能播放persistentpath下的文件,Unity官方已于2019.7.9解决。查看当前使用的手机确实是Android10系统,于是我找到一个不是Android10系统的手机,结果安装后可以正常播放。呃呃。。。但我使用的Unity版本为2019.4.8,按说该版本应该已经修复此Bug。后来问同事有没有遇到过这种问题,同事看了URL的拼写,提示会不会URL拼写格式有问题,然后我就把URL拼写方式改为如下:

    vp.url = Path.Combine(Application.streamingAssetsPath, “test.mp4”);

    然后打包,放到Android10系统上也可以成功播放了。

    相关文章

      网友评论

          本文标题:Unity VideoPlayer以url方式播放视频

          本文链接:https://www.haomeiwen.com/subject/skkxnktx.html