我有一个AVPlayer可以播放流媒体音频或音频文件。
[AVAudioSession sharedInstance]
配置了AVAudioSessionCategoryPlayback
类别。
它在前台和后台播放,一切正常。
我想添加此SO问题中描述的功能{{ 3}}当应用程序不在后台时。
我已阅读上述问题以及说明的文件:
您可以通过编程方式影响音频输出路径。使用AVAudioSessionCategoryPlayAndRecord类别时,音频通常会进入接收器(在通话时您握住的小扬声器)。您可以使用overrideOutputAudioPort:error:方法将音频重定向到手机底部的扬声器。
所以我的问题是:我可以更改AVPlayer的音频路线,保持AVAudioSessionCategoryPlayback
还是我必须切换到AVAudioSessionCategoryPlayAndRecord
?
将类别更改为AVAudioSessionCategoryPlayAndRecord
是否有任何缺点?
答案 0 :(得分:1)
您非常需要使用AVAudioSessionCategoryPlayAndRecord
,因为通过overrideOutputAudioPort
更改音频路径不适用于AVAudioSessionCategoryPlayback
(Apple提供的文档)
找不到AVAudioSessionCategoryPlayAndRecord
和AVAudioSessionCategoryPlayback
之间的任何显着差异。
答案 1 :(得分:1)
AVAudioSessionCategoryPlayAndRecord ,您可以同时播放和录制语音。 在您的情况下,您不需要使用 AVAudioSessionCategoryPlayAndRecord 。 AVPlayer AVAudioSessionCategoryPlayback 就足够了。因为你只是在播放音频文件或流媒体。
由于