我有一些关于通过扬声器播放音乐的问题。我在以下链接中找到了一个示例 How to get AVAudioPlayer output to the speaker 但问题是如何确保我成功实现了通过“扬声器”播放音乐?我将代码编写为链接,但在 iphone 模拟器(在 macbook 上)上激活“扬声器”之前和之后似乎没有区别!
更新:
下面是我激活扬声器的方式。
UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord ; // 1
AudioSessionSetProperty (
kAudioSessionProperty_AudioCategory, // 2
sizeof (sessionCategory), // 3
&sessionCategory // 4
);
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker; // 1
AudioSessionSetProperty (
kAudioSessionProperty_OverrideAudioRoute, // 2
sizeof (audioRouteOverride), // 3
&audioRouteOverride // 4
);
以下是我停用扬声器的方式
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_None; // 1
AudioSessionSetProperty (
kAudioSessionProperty_OverrideAudioRoute, // 2
sizeof (audioRouteOverride), // 3
&audioRouteOverride // 4
);
当我尝试将 kAudioSessionProperty_AudioRoute 的内容检查为 NSLog(@"%@",kAudioSessionProperty_AudioRoute ); ,模拟器崩溃了。
我查了文档,CFStringRef 和 NSString 类型几乎一样。因此,使用 NSLog 打印 kAudioSessionProperty_AudioRoute 的值是合理的。
正如你所说,kAudioSessionProperty_AudioRoute 应该是“耳机”或“扬声器”,如果我粘贴的代码是正确的并且我激活扬声器的方式是正确的,我仍然无法制作。你能帮助我吗?