我的应用涉及音乐(iPodMusic),还有一个UISwitch切换播放/暂停。我的目标是能够检测音乐是否正在播放,因此播放/暂停开关可以在播放音乐时说“播放”,如果不播放则可以说“暂停”。
答案 0 :(得分:21)
if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying) ...
答案 1 :(得分:2)
如果音乐来自您自己的应用,请检查AVAudioPlayer's playing
property。
如果音乐来自iPod,请检查MPMusicPlayerController's nowPlayingItem
或playbackState
属性。
答案 2 :(得分:1)
MPMusicPlayerController仅适用于OS 3.0或更高版本。如果你运行2.0,那你就不走运了。这是一个代码片段,用于检查您是否运行3.0或更高版本,然后才尝试创建MPMuiscPlayerController
bool playerDetectedAndPlaying = false;
NSString *reqSysVer = @"3.0";
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
if ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending){
Class MusicPlayerController = NSClassFromString(@"MPMusicPlayerController");
if (MusicPlayerController){
id myMusicPlayerController = [[MusicPlayerController alloc]init];
id MusicPlayer = [[myMusicPlayerController class] iPodMusicPlayer ];
if ( [ MusicPlayer playbackState ] == MPMusicPlaybackStatePlaying ) {
playerDetectedAndPlaying = true;
}
}
}
您必须针对3.0 SDK进行编译,但如果将部署目标设置为2.0,则此代码仍会在较旧的设备上运行。
答案 3 :(得分:0)
如果您的iTunes声音处于开启状态则会返回“是”,如果声音已关闭iTunes音乐播放器则会变为“否”...因此您可以轻松检查默认MusicPlayer声音是开还是关您需要添加媒体播放器框架Just尝试它会正常工作...... Thx ......:)
if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying)
{
NSLog(@"yes itune Player Sound is on");
}
else
{
NSLog(@"NO itune Player Sound is not on");
}