如何在AVAudioPlayer中静音?

我创build了AVAudioPlayer ,现在我想在用户点击button时将其静音。

这里我曾经尝试过:

 player.volume = 1.0 //when first time i initiate my player - (IBAction)speakerOnOff:(id)sender { if (player.volume == 1.0) { [player setVolume: 0.0]; NSLog(@"1volume is:%f",player.volume); }else if (player.volume == 0.0) { [player setVolume: 1.0]; NSLog(@"2volume is:%f",player.volume); } } 

if (player.volume = 1.0)if (player.volume = 0.0)至less在两个级别上是错误的。 首先,C不是Pascal – =操作符是一个赋值,可能你的意思是if (player.volume == 1.0)

二,即使这不会有什么好处 – 比较浮点数不会做你认为的事情 。 你最好设置一个布尔标志来指示播放器的状态(并且省略else if部分,因为它是多余的):

 - (IBAction)speakerOnOff:(id)sender { static BOOL muted = NO; if (muted) { [player setVolume:1.0]; } else { [player setVolume:0.0]; } muted = !muted; } 

迅捷2+解决scheme

  let musicPlayer:AVAudioPlayer = AVAudioPlayer() var IsMuted:Bool = false if IsMuted == false { IsMuted = true musicPlayer.volume = 0 } else { IsMuted = false musicPlayer.volume = 1 } 

– >不要忘记将setCategoryAVAudioSessionCategoryAmbient

 do { try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient) try AVAudioSession.sharedInstance().setActive(true) } catch _ { return print("couldn't set session") }