使用相同的按钮快速播放和停止音乐

Posted

技术标签:

【中文标题】使用相同的按钮快速播放和停止音乐【英文标题】:make play and stop music with same button swift 【发布时间】:2017-05-12 04:56:20 【问题描述】:

如何像在iTunes中一样使用单个按钮播放和停止音乐。当按下按钮并再次按下相同的按钮时应该停止音乐。

  var audioplayer = AVaudioPlayer
 @IBAction func play(_ sender: Any) 

    do
    

        audioPlayer = try AVAudioPlayer (contentsOf: URL.init(fileURLWithPath: Bundle.main.path(forResource: "bensound", ofType: "mp3")!))
        audioPlayer.prepareToPlay()
        audioPlayer.play()
        audioPlayer.stop()

    
    catch 
        print ("error")

    


【问题讨论】:

【参考方案1】:

显然,这是行不通的:

audioPlayer.prepareToPlay()
audioPlayer.play() // this will just start playing the music and immediately stop it.
audioPlayer.stop()

您需要一个 if 语句和一个指示音乐是否正在播放的变量。

幸运的是,我所说的变量已经存在!你甚至不需要自己声明!它是isPlaying,在AVAudioPlayer 中定义。

我们只需要编写 if 语句。很简单,

如果正在播放音乐,则停止,否则,开始播放

if audioplayer.isPlaying 
    audioplayer.play()
 else 
    audioplayer.stop()

【讨论】:

以上是关于使用相同的按钮快速播放和停止音乐的主要内容,如果未能解决你的问题,请参考以下文章

播放按钮声音而不停止在后台运行的音乐

如何在 Inno Setup 中制作停止和暂停/恢复/播放音乐按钮

Android:如何停止这种音乐?

如何在后台播放音频?

如何播放/停止背景音乐和音效?

如何停止或暂停 SKAction 播放音乐? - 斯威夫特