如何使用 AVAudioPlayer 释放声音?

Posted

技术标签:

【中文标题】如何使用 AVAudioPlayer 释放声音?【英文标题】:How can I release a sound using AVAudioPlayer? 【发布时间】:2011-03-08 21:16:42 【问题描述】:

我正在尝试使用 AVFoundation 框架创建一个带有很多按钮的音板“交互式采访”。音板已经完成,但我有一个问题,当我按下我的一个声音时,当我同时按下一个新的声音时它不会停止。如果按下新声音,是否有一种简单的方法可以停止以前的声音?我的代码是这样的

- (IBAction)playSound0 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"about" ofType:@"mp3"];
    AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];

    [theAudio play];


- (IBAction)playSound1 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"chillwhatup" ofType:@"mp3"];
    AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];

    [theAudio play];


- (IBAction)playSound2 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"gethighorgetlow" ofType:@"mp3"];
    AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];

    [theAudio play];


- (IBAction)playSound3 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"icamefromthere" ofType:@"mp3"];
    AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];

    [theAudio play];


- (IBAction)playSound4 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"idoeverythinggood" ofType:@"mp3"];
    AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];


    [theAudio play];


【问题讨论】:

这与 Xcode 无关。此外,它拼写为“Xcode”,而不是“XCODE”、“xCode”、“XCode”或其他任何内容。已经学习了拼写和术语! 【参考方案1】:

我只想让我的班级跟踪上次开始的声音,然后在我开始播放新声音之前,停止前一个声音,如果它还在播放。

AVAudioPlayer 有一个 stop 方法来停止声音和一个 正在播放 方法来查看它是否正在播放。

【讨论】:

谢谢,但这并不能告诉我太多:(

以上是关于如何使用 AVAudioPlayer 释放声音?的主要内容,如果未能解决你的问题,请参考以下文章

声音播放完毕后 AVAudioPlayer 实例会发生啥? [关闭]

(iphone) 如何使用 AVAudioPlayer 顺序播放声音?

如何在 iOS 上使用 AVAudioPlayer 播放指定持续时间的声音?

如何播放与 AVAudioPlayer 重叠的相同声音?

AVAudioRecorder & AVAudioPlayer - 内置扬声器的声音输出,如何更改?

使用 AVAudioPlayer 在后台播放声音序列