是否可以使用AVAudioSessionCategoryPlayback更改AVPlayer的音频路由?

时间:2016-02-04 08:00:24

标签: ios avfoundation avplayer

我有一个AVPlayer可以播放流媒体音频或音频文件。 [AVAudioSession sharedInstance]配置了AVAudioSessionCategoryPlayback类别。
它在前台和后台播放,一切正常。
我想添加此SO问题中描述的功能{{ 3}}当应用程序不在后台时。
我已阅读上述问题以及说明的文件:

  

您可以通过编程方式影响音频输出路径。使用AVAudioSessionCategoryPlayAndRecord类别时,音频通常会进入接收器(在通话时您握住的小扬声器)。您可以使用overrideOutputAudioPort:error:方法将音频重定向到手机底部的扬声器。

所以我的问题是:我可以更改AVPlayer的音频路线,保持AVAudioSessionCategoryPlayback还是我必须切换到AVAudioSessionCategoryPlayAndRecord? 将类别更改为AVAudioSessionCategoryPlayAndRecord是否有任何缺点?

2 个答案:

答案 0 :(得分:1)

您非常需要使用AVAudioSessionCategoryPlayAndRecord,因为通过overrideOutputAudioPort更改音频路径不适用于AVAudioSessionCategoryPlayback(Apple提供的文档)

找不到AVAudioSessionCategoryPlayAndRecordAVAudioSessionCategoryPlayback之间的任何显着差异。

答案 1 :(得分:1)

VOIP场景需要

AVAudioSessionCategoryPlayAndRecord ,您可以同时播放和录制语音。 在您的情况下,您不需要使用 AVAudioSessionCategoryPlayAndRecord AVPlayer AVAudioSessionCategoryPlayback 就足够了。因为你只是在播放音频文件或流媒体。

由于