我正在使用AVPlayer来播放我从后端获取的URL。最初,我将项目下载到我的文档目录,并使用网址通过AVAudioPlayer
播放文件。我切换到AVPlayer
所以我可以流式传输音频而不是下载它们。我看到URL已成功获取,但一旦我尝试播放它,我就没有音频。下面是我正在提取的URL的示例:
/Users/ellie/Desktop/ellie/sound/uploads/ellie1/Track5.m4a
var player: AVPlayer!
var fetchedURL: NSURL?
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
//I left out the fetching process
self.fetchedURL = NSURL(string:parseString!)
print("fetchedURL is \(self.fetchedURL!)")
self.playCell()
}
func playCell() {
let audioSession: AVAudioSession = AVAudioSession.sharedInstance()
do {
try audioSession.setCategory(AVAudioSessionCategoryPlayback)
} catch _ {
}
do {
try audioSession.setActive(true)
} catch _ {
}
print("fetchedURL is \(self.fetchedURL!)")
player = AVPlayer(URL:self.fetchedURL!)
player.play()
}
答案 0 :(得分:1)
AVPlayer仅播放本地和远程托管的视频文件,还将播放流媒体链接。要进行流式传输,您需要确保使用正确的流式链接,例如:https://stackoverflow.com/questions/10104301/hls-streaming-video-url-need-for-testing。
请注意,将视频文件转换为托管流式链接并非易事。 vimeo等服务提供上传和编码视频文件的功能,但只会在“专业版”下为您提供流媒体链接。版。
其他选项包括配置AWS S3存储桶以托管和编码视频文件。 http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/TutorialStreamingJWPlayer.html