Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
Ios 保存和播放使用firebase存储下载的视频_Ios_Firebase_Unity3d - Fatal编程技术网

Ios 保存和播放使用firebase存储下载的视频

Ios 保存和播放使用firebase存储下载的视频,ios,firebase,unity3d,Ios,Firebase,Unity3d,我的应用程序可以从firebase下载视频内容,将其保存到Application.dataPath,然后在编辑器中播放。但是,当我将其构建到iOS时,它找不到该文件。我也尝试过使用这个应用程序。persistentData,但它似乎确实存在。 有什么有用的建议吗 //请原谅我丑陋的代码:/______ //我已经删除了垃圾评论等,整理了一下,但我认为这让我对我正在使用的技巧有了一个想法 public void FUKN_download_viddy() { Firebas

我的应用程序可以从firebase下载视频内容,将其保存到Application.dataPath,然后在编辑器中播放。但是,当我将其构建到iOS时,它找不到该文件。我也尝试过使用这个应用程序。persistentData,但它似乎确实存在。 有什么有用的建议吗

//请原谅我丑陋的代码:/______ //我已经删除了垃圾评论等,整理了一下,但我认为这让我对我正在使用的技巧有了一个想法

    public void FUKN_download_viddy()
    {
    FirebaseStorage storage = FirebaseStorage.DefaultInstance;
    StorageReference path_reference = storage.GetReference("videoname.mp4");

    pathToSaveTo =  "file://" +
    Application.dataPath +
    "/Resources/Adam/Year 1 Semester 1/"+
    "videoname.mp4";

    path_reference.GetFileAsync(pathToSaveTo).ContinueWith(task => {
    if (!task.IsFaulted && !task.IsCanceled)
    {
    Debug.Log("File downloaded.");
    }
    });
    }

    // ____________




    // _________

    public void FUKN_play_viddy()
    {
    string viddyplayerpath = "Adam/Year 1 Semester 1/" + "videofile";

    var viddyKlip = Resources.Load<VideoClip>(viddyplayerpath);

    VideoPlayer videoPlayer = GetComponent<VideoPlayer>();
    videoPlayer.clip = viddyKlip;    // index offset
    videoPlayer.Play();


    }
    // _________


public void FUKN\u下载\u viddy()
{
FirebaseStorage=FirebaseStorage.DefaultInstance;
StorageReference路径_reference=storage.GetReference(“videoname.mp4”);
pathToSaveTo=“文件://”+
Application.dataPath+
“/Resources/Adam/第一学年第1学期/”+
“videoname.mp4”;
path_reference.GetFileAsync(pathToSaveTo).ContinueWith(task=>{
如果(!task.IsFaulted&&!task.IsCanceled)
{
Log(“下载的文件”);
}
});
}
// ____________
// _________
公共空间游戏
{
字符串viddyplayerpath=“亚当/第一学年第1学期/”+“视频文件”;
var viddyKlip=Resources.Load(viddyplayerpath);
VideoPlayer VideoPlayer=GetComponent();
videoPlayer.clip=viddyKlip;//索引偏移量
视频播放器;
}
// _________

我认为您的问题在于
资源。Load
拉入
资产/资源
目录中包含的元素,而不是文件系统(请参阅)

如前所述,您希望使用VideoPlayer.src

例:

注意,我使用的在iOS和Android上是只读的

我希望这有帮助


--Patrick

请提供代码示例,以便人们可以使用。谢谢Patrick,噢,哇,你就是firebase教程视频中的那个人!出名!我一直在研究你的视频,你在这里评论。。但仍然无法让它工作。我希望我的用户能够将非常短的视频剪辑下载到他们的iOS或Android设备上。他们不需要上传任何东西。(这些将由我通过控制台上传)如果他们愿意,他们可以删除视频。当你说persistentDataPath和dataPath在iOS和Android上是只读的时,这是否意味着我不能从firebase下载并保存到设备上..?我的代码在Unity编辑器中工作,但是在构建到iOS后,文件似乎无法下载。以下是我怀疑自己做错的代码片段:`pathToSaveTo=Application.persistentDataPath++“/”+“Y1_002_election.mp4”;FirebaseStorage=FirebaseStorage.DefaultInstance;StorageReference路径_reference=storage.GetReference(“Y1_002_election.mp4”);path_reference.GetFileAsync(pathToSaveTo).ContinueWith(task=>{if(!task.IsFaulted&&!task.IsCanceled){print(“下载”);}否则{print“未下载”;}`/{if(File.Exists(pathToSaveTo)==true)//在iOS上,这似乎总是错误的{ViddyPlayer.url=pathToSaveTo;ViddyPlayer.Play();display4.text=“playing viddy”}其他{display4.text=“computer sez no”//显示此项}帕特里克!谢谢你的帮助和耐心!我成功了!!!我制作了一个youtube视频,我希望它能帮助别人:)
public class TestVideo: MonoBehaviour {
    [SerializeField] private VideoPlayer _videoPlayer;

    public Play() {
        _videoPlayer.src = "file://" + Application.persistentDataPath + "/Resources/Adam/Year 1 Semester 1/" + "videoname.mp4";
        _videoPlayer.Play();
    }
}