播放存储在谷歌驱动器中的音频文件(远程 URL) - Swift
Posted
技术标签:
【中文标题】播放存储在谷歌驱动器中的音频文件(远程 URL) - Swift【英文标题】:Play audio file stored in google drive (remote URL) - Swift 【发布时间】:2019-04-17 11:47:17 【问题描述】:我正在使用 AVPlayer 播放存储在谷歌驱动器中的音频。问题是,由于存储在谷歌驱动器中的文件的公共链接没有提到扩展名,这就是 AVPlayer 不播放音频的原因,因为无法从 URL 获取其扩展名。以下是我正在使用的代码。
let url = URL(string: "https://drive.google.com/file/d/1n6GeWY11Txvou5K-Tl7Ju39fQsWQTDvR/view?usp=sharing")
let playerItem:AVPlayerItem = AVPlayerItem(url: url!)
player = AVPlayer(playerItem: playerItem)
player!.play()
例如,以下网址的情况
https://drive.google.com/file/d/1n6GeWY11Txvou5K-Tl7Ju39fQsWQTDvR/view?usp=sharing
AVPlayer 没有播放它并显示它的持续时间为 0。
但是当我像下面这样播放音频文件时
https://www2.cs.uic.edu/~i101/SoundFiles/BabyElephantWalk60.wav
由于文件扩展名可用,它可以正常播放。
那么,当扩展在远程 URL 中不可用时,有人可以评论如何播放音频。
谢谢
【问题讨论】:
Swift won't play audio from link - ios的可能重复 我遇到了同样的问题,你是怎么解决的? 【参考方案1】:刚要修改网址,用这个:
https://drive.google.com/uc?export=open&id=1n6GeWY11Txvou5K-Tl7Ju39fQsWQTDvR
这就是我所做的,
共享音频文件如下所示:
https://drive.google.com/file/d/XXXXXXXXXXXXXXXXXX/view?usp=sharing
XXXXXXXXXXXXXXXXXX
是文件 ID。您可以通过删除 ID 之后的所有内容并将file/d/
替换为uc?export=open&id=
来访问直接文件
请记住,如果 Google 决定更改其文件共享的工作方式,那么此解决方案可能会失效。
【讨论】:
您好,我也尝试从 Goodle Drive 播放音频文件。我得到了你上面写的轨道网址:'h_t_t_p_s://drive.google.com/uc?export=open&id=XXXXXXXXX' 但是 AVPlayer 不会从网址播放轨道。网址如下所示:'h_t_t_p_s://drive.google.com/uc?export=open&id=1sV8pTS3PiUKeU5VLGAC97Ql8nvnvXqfc"'?如果我在浏览器中打开此网址 - 它会播放以上是关于播放存储在谷歌驱动器中的音频文件(远程 URL) - Swift的主要内容,如果未能解决你的问题,请参考以下文章