Unity3d-在iOS版本上为视频播放器加载外部URL时出错

时间:2018-07-26 08:32:22

标签: c# unity3d video video-streaming

如果我在Mac上动态加载视频播放器的网址,则它可以正常工作,但是在iphone上构建和播放时,我会收到此错误,而在android上,它可以工作:

 CredStore - performQuery - Error copying matching creds.  Error=-25300, query={
     class = inet;
     "m_Limit" = "m_LimitAll";
     "r_Attributes" = 1;
     sync = syna;
 }

这是功能:

public void WI_PlayVideo(string target, string video)
     {

         MyVideo = GameObject.Find(target).GetComponent<VideoPlayer>();

         if (MyVideo == null)
         {
             Debug.Log("player non trovato");
         }
         else
         {
             //here there's the file name that is public whithout credential request
             MyVideo.url = "https://myspace.ams3.digitaloceanspaces.com/" + video;
             MyVideo.Play();
         }

任何人都知道ios会问我什么证书?

添加评论

1 个答案:

答案 0 :(得分:1)

在调用VideoPlayer.Play()函数播放视频之前,应始终调用VideoPlayer.Prepare()并等待其结束。例如,请参见this

如果您已完成此操作,但问题仍然存在,则当尝试从某些URL播放视频时,这很可能是Unity VideopPlayer API中的https错误。

您应该做的第一件事是将Unity更新到最新版本,然后进行测试,看看是否已修复此错误。如果尚未解决,建议您在当前项目中提交错误报告,并确保在其中包含完整的视频URL,因为这是重新创建问题的必要条件。


在等待解决此问题的同时,解决此问题的方法是使用API​​下载并保存视频。 This是这样做的方法。之后,从本地驱动器播放视频。


如果视频太大,那么下载和保存它会花费很多时间,那么您可以使用DownloadHandlerScript API批量下载视频数据,使用HttpListener创建本地服务器,然后在下载数据块数据时将其发送到连接的客户端。有关如何创建本地服务器并从中播放视频的完整示例,请参见此post。您只需要用DownloadHandlerScript中的数据替换发送给客户端的数据即可。