【问题标题】:Mute My App When Other Apps are Playing Music in Swift当其他应用程序在 Swift 中播放音乐时将我的应用程序静音
【发布时间】:2015-07-06 20:30:57
【问题描述】:

我正在编写一个播放音乐的应用程序。但是,我想让我的应用程序的音乐在其他音乐播放时暂停,例如来自 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

【问题讨论】:

    标签: ios swift avfoundation avaudioplayer


    【解决方案1】:

    要做到这一点,我相信你需要检查音乐播放器是否正在播放,这是我在 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
    }
    

    【讨论】:

    • 我将如何将其转换为 Swift?
    • @kriskendall99 如果您知道 swift 这一切应该不难,我从来没有用 Swift 编写过应用程序,但我能够做到,请查看更新后的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    相关资源
    最近更新 更多