gpt4 book ai didi

ios - 触发 AVAudioPlayer 停止所有声音并播放选定的声音,除非单击播放(选定的)按钮

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:11:08 24 4
gpt4 key购买 nike

我正在创建一个一次播放一个声音的音板应用程序。我希望 UIButton 能够停止播放所有其他声音并在单击时开始播放自己的声音。我有一个 AVAudioPlayer 设置来播放所有声音(我在单击时更改声音文件 url,因为我一次只想要一个声音播放这不是问题)。我想知道如何停止所有其他声音并根据按下的按钮播放声音,但是如果单击的按钮是当前正在播放声音的按钮,则该按钮只会停止声音。我知道这可以通过分离音频播放器并触发停止事件来实现,但我想避免复制和粘贴代码并尽可能保持高效,而且我只想要/需要一个音频播放器。这是我的代码:

- (IBAction)play {
if (audioPlayer.playing == NO) {
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/k.mp3", [[NSBundle mainBundle] resourcePath]]];
NSError *error;
[audioPlayer release];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops = 0;

AVAudioSession *audiosession = [AVAudioSession sharedInstance];
[audiosession setCategory:AVAudioSessionCategoryAmbient error:nil];

[audioPlayer play];
[start setTitle:@"Stop" forState:UIControlStateNormal];
}
else
if (audioPlayer.playing == YES) {
[audioPlayer stop];
[start setTitle:@"Start" forState:UIControlStateNormal];
}
}


- (IBAction)play2 {
if (audioPlayer.playing == NO) {
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/chicken.mp3", [[NSBundle mainBundle] resourcePath]]];
NSError *error;
[audioPlayer release];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops = 0;

AVAudioSession *audiosession = [AVAudioSession sharedInstance];
[audiosession setCategory:AVAudioSessionCategoryAmbient error:nil];

[audioPlayer play];
[start2 setTitle:@"Stop" forState:UIControlStateNormal];
} else
if (audioPlayer.playing == YES) {
[audioPlayer stop];
[start2 setTitle:@"Start" forState:UIControlStateNormal];
}
}

感谢任何帮助。提前致谢!

最佳答案

就这样

-(void)stopAudio{

if(audioPlayer && [audioPlayer isPlaying]){
[audioPlayer stop];
audioPlayer=nil;
}

}

并在每次点击时调用此函数..

- (IBAction)play2 {
[self stopAudio];

//Do your Stuffs
}

关于ios - 触发 AVAudioPlayer 停止所有声音并播放选定的声音,除非单击播放(选定的)按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15357126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com