当其他应用程序在Swift中播放音乐时将我的应用静音

时间:2015-07-06 20:30:58

标签: ios swift avfoundation avaudioplayer

我正在编写一个播放音乐的应用。但是,我想这样做,以便我的应用程序的音乐在播放其他音乐时暂停,例如来自iTunes的音乐。我怎么做到这一点?这是我的代码:

 var alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("Ambler", ofType: "mp3")!)

    // Removed deprecated use of AVAudioSessionDelegate protocol
    AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient, error: nil)
    AVAudioSession.sharedInstance().setActive(true, error: nil)

    var error:NSError?
    audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, error: &error)
    audioPlayer.prepareToPlay()
    audioPlayer.play()
    audioPlayer.numberOfLoops = -1

1 个答案:

答案 0 :(得分:0)

要做到这一点,我相信你需要检查音乐播放器是否在播放,这就是我在Objective-C中的表现。

首先#import <MediaPlayer/MediaPlayer.h>并将库添加到构建阶段。

- (BOOL)isPlaying
{
    MPMusicPlayerController *musicPlayer = [MPMusicPlayerController systemMusicPlayer];
    if (musicPlayer.playbackState == MPMusicPlaybackStatePlaying) {
        return YES;
    }
    return NO;
}

初始化musicPlayer时,可能会导致音乐停止,如果是,我会这样做 看看

+ (MPMusicPlayerController *)applicationMusicPlayer

夫特

func isPlaying() -> Bool {

    let musicPlayer = MPMusicPlayerController.systemMusicPlayer()
    if musicPlayer.playbackState == MPMusicPlaybackState.Playing {
        return true
    }
    return false
}