首页 文章

AVPlayer不播放用AVAudioRecorder-Swift录制的文件

提问于
浏览
0

AVPlayer不播放使用AVAudioRecorder录制的.aif文件 . 我目前的流程是:

  • AVAudioSession.sharedInstance的类别设置为AVAudioSessionCategoryPlayAndRecord

  • AVAudioRecorder在应用程序的文档目录中使用NSURL进行实例化,并且设置了kAudioFormatAppleIMA4的格式,比特率为32000,1通道,采样率为16000.0 .

  • 录制音频,然后停止 . 文件已保存,我可以在应用程序的文档目录中找到它,并验证音频是否正确记录 .

  • 使用文件的NSURL实例化AVPlayer实例 . 将一个观察者添加到此对象以注册对其状态的更改 . 当AVPlayer是ReadyToPlay时,我调用播放功能 .

但是,尽管控制流程达到AVPlayerStatus.ReadyToPlay并调用播放,但不会产生声音 . 我通过实例化AVAsset,AVPlayerItem和AVPlayer尝试了this SO post的过程 . 没运气 .

有关为什么AVPlayer没有为这个新录制的本地文件播放音频的想法?

编辑:该应用程序是为iOS 9和Xcode 7 beta 5构建的 . 该应用程序能够播放AVPlayer流式传输的音频文件 .

1 回答

  • 2

    问题不是由AVAudioRecorder或AVPlayer引起的 . 我的录制网址是NSURL我会调用fileURL . 我将此NSURL传递给另一个视图控制器,但在使用fileURL实例化时,AVPlayer无法播放 . 我明白了什么时候会出错

    fileURL.checkResourceIsReachableAndReturnError(&error)
    

    失败,错误“文件不存在” . 相反,我使用以下方法实例化了新记录文件路径的新NSURL:

    let url = NSURL(fileURLWithPath: path)
    

    有了这个url,我就能够实例化并播放AVPlayer的一个实例 .

相关问题