从其他应用程序播放音频
Play Audio from other apps
所以当我启动我的应用程序时,我希望能够知道何时正在播放来自另一个应用程序的音乐(系统、soundcloud、pandora、spotify 等)。
我可以这样做:
BOOL isOtherAudioPlaying = [[AVAudioSession sharedInstance] isOtherAudioPlaying];
if (isOtherAudioPlaying){
NSLog(@"Playing Music");
}else{
NSLog(@"Not Playing Music");
}
而且我可以使用以下代码 play/pause iPod 音乐播放器:
[[MPMusicPlayerController systemMusicPlayer] play];
[[MPMusicPlayerController systemMusicPlayer] pause];
但是,这仅在我使用默认 iOS 音乐应用时有效。
如果我从另一个应用程序(例如 SoundCloud)听音乐。该代码不起作用。它仍然 play/pause iOS 音乐应用。
问题:
有没有什么办法可以让playing/pausing当前正在播放的音乐不受应用程序的影响?
Is there any way of playing/pausing music that is being currently played regardless of the app?
将您的 AVAudioSession 的类别设置为播放(或类似类别)并激活它。其他应用程序正在播放的任何背景音频都将停止。
matt 是正确的,您无法控制其他音频是否暂停。你必须:
- 开始您的音频会话
- 准备好处理系统所做的一切
我需要同时播放和录制音频,并且无法停止背景音乐。
我能够通过此音频设置做到这一点:
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setActive: NO error: nil];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions: AVAudioSessionCategoryOptionMixWithOthers error:nil];
[audioSession setActive:YES error:nil];
这里有 table 个音频 session 类别,可帮助您找到所需效果的类别。
https://developer.apple.com/library/ios/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/ConfiguringanAudioSession/ConfiguringanAudioSession.html
这是完整的音频 Session 节目指南,它帮助我了解更多并解决了我的问题
https://developer.apple.com/library/ios/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategoriesandModes/AudioSessionCategoriesandModes.html#//apple_ref/doc/uid/TP40007875-CH10-SW1
所以当我启动我的应用程序时,我希望能够知道何时正在播放来自另一个应用程序的音乐(系统、soundcloud、pandora、spotify 等)。
我可以这样做:
BOOL isOtherAudioPlaying = [[AVAudioSession sharedInstance] isOtherAudioPlaying];
if (isOtherAudioPlaying){
NSLog(@"Playing Music");
}else{
NSLog(@"Not Playing Music");
}
而且我可以使用以下代码 play/pause iPod 音乐播放器:
[[MPMusicPlayerController systemMusicPlayer] play];
[[MPMusicPlayerController systemMusicPlayer] pause];
但是,这仅在我使用默认 iOS 音乐应用时有效。
如果我从另一个应用程序(例如 SoundCloud)听音乐。该代码不起作用。它仍然 play/pause iOS 音乐应用。
问题:
有没有什么办法可以让playing/pausing当前正在播放的音乐不受应用程序的影响?
Is there any way of playing/pausing music that is being currently played regardless of the app?
将您的 AVAudioSession 的类别设置为播放(或类似类别)并激活它。其他应用程序正在播放的任何背景音频都将停止。
matt 是正确的,您无法控制其他音频是否暂停。你必须:
- 开始您的音频会话
- 准备好处理系统所做的一切
我需要同时播放和录制音频,并且无法停止背景音乐。
我能够通过此音频设置做到这一点:
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setActive: NO error: nil];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions: AVAudioSessionCategoryOptionMixWithOthers error:nil];
[audioSession setActive:YES error:nil];
这里有 table 个音频 session 类别,可帮助您找到所需效果的类别。 https://developer.apple.com/library/ios/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/ConfiguringanAudioSession/ConfiguringanAudioSession.html
这是完整的音频 Session 节目指南,它帮助我了解更多并解决了我的问题 https://developer.apple.com/library/ios/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategoriesandModes/AudioSessionCategoriesandModes.html#//apple_ref/doc/uid/TP40007875-CH10-SW1