8

我的应用程序涉及音乐(iPodMusic),并且有一个 UISwitch 切换播放/暂停。我的目标是能够检测音乐是否正在播放,因此播放/暂停开关可以在播放音乐时说“播放”,如果不是,则“暂停”。

4

4 回答 4

21
if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying) ...
于 2010-02-16T16:35:53.250 回答
2

如果音乐来自您自己的应用程序,请检查AVAudioPlayer 的playing属性

如果音乐来自 iPod,请检查MPMusicPlayerController 的nowPlayingItemplaybackState属性。

于 2010-02-16T16:37:36.367 回答
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,此代码仍可在旧设备上运行。

于 2010-03-21T19:05:15.793 回答
0

如果您的 iTunes 声音已打开,则为“是”,如果 iTunes 音乐播放器关闭,则为“否”...因此您可以轻松检查默认的 MusicPlayer 声音是打开还是关闭 您需要添加媒体播放器框架,试一试将正常工作....谢谢... :)

   if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying)
    {
           NSLog(@"yes itune Player Sound is on");
    }
    else
    {
          NSLog(@"NO itune Player Sound is not on");
    }
于 2016-06-16T11:01:12.317 回答