AVPlayer不从后端播放URL

时间:2015-10-21 02:24:30

标签: ios swift avplayer

我正在使用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()
}

1 个答案:

答案 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