AVAudioPlayer - 屏蔽按钮

时间:2011-12-28 13:53:29

标签: iphone avaudioplayer mute

我搜索过这个答案但还没找到。

当我的iPhone应用程序启动时,我有在后台播放的音乐。但我想要一个按钮,以便用户可以将音乐静音。应用程序中也有声音效果,因此滑动设备侧面的静音按钮不会削减它。

这是我对AVAudioPlayer的当前代码。

    - (void)viewDidLoad{
#if TARGET_IPHONE_SIMULATOR
    //here code for use when execute in simulator
#else
    //in real iphone
    NSString *path = [[NSBundle mainBundle] pathForResource:@"FUNKYMUSIC" ofType:@"mp3"];  
    AVAudioPlayer *TheAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];  
    TheAudio.delegate = self;  
    [TheAudio play];      
    TheAudio.numberOfLoops = -1;
#endif
}

任何人都可以帮我找到一个简单的按钮所需的代码,只需停止音乐并重新开始播放。

先谢谢。

2 个答案:

答案 0 :(得分:0)

将此代码放在viewcontroller.h文件中:

-(IBAction) btnStop:(id)sender;

将此代码放在viewcontroller.m文件中:

-(IBAction) btnStop:(id)sender { 
    [TheAudio stop];
    //Whatever else you want to do when the audio is stopped
}

在“界面”构建器中,将按钮连接到此操作,因此在单击该操作时将调用此操作。 这应该会让音乐停止。

答案 1 :(得分:0)

在答案中更容易显示代码:

-(IBAction) playerPlay:(id)sender {

    if([player isPlaying]) {
        [player stop]; 
    }
    if(![player isPlaying]) {
        [player play]; 
    }

}

我将解释: [player isPlaying]方法检查音频是否正在播放。如果正在播放音频,则会执行括号中的所有内容(在这种情况下,音频会停止播放)。

因为"!"在![player isPlaying]中,该方法与通常的方法相反。这意味着如果播放器没有播放,括号中的所有内容都会被执行(在这种情况下,音频开始播放)。

所有这些都包含在IBAction中,以便在单击按钮时执行。

为了将来参考,Objective-C中If语句的正确格式为:

if(thing to check for) {
things that happen if the thing that is check for is correct;
}

"然后"从来没有真正使用过,但它是同一个东西,括号中的东西。 希望这有帮助!