首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停止AVAudioPlayer

停止AVAudioPlayer
EN

Stack Overflow用户
提问于 2011-04-01 22:29:00
回答 1查看 2.1K关注 0票数 1

以下是我的代码

代码语言:javascript
复制
 NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"95" ofType:@"wav"];

NSError *activationError = nil;
NSError *audioPlayerInitError = nil;
[[AVAudioSession sharedInstance] setActive: YES error:&activationError];

NSURL *newURL = [NSURL fileURLWithPath:soundFilePath];
musicPlayer1 = [[AVAudioPlayer alloc] initWithContentsOfURL:newURL error:&audioPlayerInitError];

if (musicPlayer1) {
    [musicPlayer1 stop];
    [musicPlayer1 release];
    musicPlayer1 = nil;
}
else {

    [musicPlayer1 prepareToPlay];
    [musicPlayer1 setVolume:.8];
    [musicPlayer1 setNumberOfLoops:-1]; // -1 means play indefintely
    [musicPlayer1 setDelegate: self];
    [musicPlayer1 play];
}

}

我正在尝试使用相同的按钮(musicPlayer1在标题中)来启动和停止AVAudioPlay。现在,当我触摸按钮时,它不会播放任何东西。帮帮忙好吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-01 22:35:18

您每次都会创建一个新的AVAudioPlayer实例。您需要在某个地方保留对该对象的引用,然后再引用该对象。在视图控制器类中添加一个字段:

代码语言:javascript
复制
@private AVAudioPlayer *currentAudio;

然后在此方法中,进行以下更改:

代码语言:javascript
复制
if (currentAudio) {
    [currentAudio stop];
    [currentAudio release];
    currentAudio = nil;
} else {
    // what you already have goes here
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5514772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档