2010-02-16 39 views
8

Ứng dụng của tôi liên quan đến âm nhạc (iPodMusic) và có một nút phát/tạm dừng của UISwitch. Mục tiêu của tôi là có thể phát hiện xem nhạc có đang phát hay không, do đó công cụ phát/tạm dừng có thể nói 'phát' khi nhạc đang phát và 'tạm dừng' nếu không.Phát hiện xem nhạc có đang phát không?

Trả lời

21
if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying) ... 
+0

Nó hoạt động hoàn hảo! – Flafla2

+1

Điều này cũng hữu ích nếu bạn muốn ứng dụng của mình ngừng tạo ra tiếng ồn riêng nếu người dùng khởi động ứng dụng iPod. Ví dụ: nếu bạn đang viết một trò chơi và cuộc đụng độ âm nhạc trong trò chơi của riêng bạn với người dùng đang cố gắng chơi trò chơi của riêng họ. – Piku

+1

Điều này phải được khắc phục do việc iOS 8 không dùng phương thức 'iPodMusicPlayer' của' MPMusicController': hoán đổi nó thành 'systemMusicPlayer'. – DDPWNAGE

1

MPMusicPlayerController chỉ khả dụng trong OS 3.0 trở lên. Nếu bạn đang chạy 2.0, bạn sẽ không may mắn. Dưới đây là một đoạn mã để kiểm tra nếu bạn đang chạy 3.0 hoặc cao hơn và chỉ sau đó cố gắng để tạo ra một 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; 
     } 
    } 
} 

Bạn cần phải biên dịch chống lại một SDK 3.0, nhưng nếu bạn đặt mục tiêu triển khai đến 2,0, mã này vẫn chạy trên các thiết bị cũ hơn.

0

nó sẽ chuyển thành có nếu âm thanh iTunes của bạn ở chế độ khác nếu không có âm thanh tắt của trình phát nhạc iTunes ... Vì vậy, bạn có thể dễ dàng kiểm tra Âm thanh MusicPlayer mặc định là Bật hoặc Tắt Bạn cần thêm khung trình phát media Chỉ cần thử nó nó sẽ hoạt động đúng .... Thx ... :)

if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying) 
    { 
      NSLog(@"yes itune Player Sound is on"); 
    } 
    else 
    { 
      NSLog(@"NO itune Player Sound is not on"); 
    } 
Các vấn đề liên quan