2012-12-19 75 views
0

我正在開發一個iPhone應用程序,將根據用戶的要求播放自己的聲音。如何防止我的應用程序播放聲音,如果設備已播放音樂

我的問題是,如果設備已經在播放音樂,如何在啓動時禁用我的應用程序中的聲音?

我知道我必須檢測設備是否已在播放音樂,但我該怎麼做?

+1

'我知道我將不得不檢測,如果聲音已經playing' - 錯誤。仔細查看audiosession安裝文檔 - 專門查看「音頻會話類別」。 – Till

+0

建立適當的音頻會話,並暫停所有已播放的音樂。 – sooper

+0

感謝您的回答!我感謝你給予這個問題的時間! – Developer

回答

2

你既可以激活音頻會話就像這樣:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[[AVAudioSession sharedInstance] setActive: YES error: nil]; 

,或者你可以創建一個[MPMusicPlayerController iPodMusicPlayer]實例和暫停音樂,但其他應用程序裏面正在播放這不會暫停音樂。

編輯

如果你想檢查的iPod播放音樂,那麼你可以做這樣的事情:

MPMusicPlayerController *musicPlayer = [MPMusicPlayerController iPodMusicPlayer]; 
if ([musicPlayer playbackState] == == MPMusicPlaybackStatePlaying) 
    //iPod is playing music, do something here 
} 

你需要添加MediaPlayer框架。

+0

謝謝!有效! – Developer

0

要檢查您是否已經在播放音樂時,你可以這樣做:

(YES == ((AVAudioSession *)[AVAudioSession sharedInstance]).otherAudioPlaying) 
相關問題