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