iphone - 检测音频文件是否正在播放-iPhone

标签 iphone audio core-audio

我正在使用调用方法的UIButton播放音频剪辑(请参见下面的代码)。我试图弄清楚如何编写一条语句来检测音频是否正在运行,以及音频文件是否正在播放,然后禁用/隐藏UIButton。

目前,如果您持续触摸播放按钮,则会播放音频剪辑的多个实例。

-(void) audioMethod {


NSString *path = [[NSBundle mainBundle] pathForResource:@"affs" ofType:@"mp3"];

theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];

theAudio.delegate=self;

theAudio.numberOfLoops = -1;
[theAudio prepareToPlay];

[theAudio play];

}

谢谢你的帮助

最佳答案

您只需将调用类声明为AVAudioPlayerDelegate(如我所见,您已经完成了)。

然后编写一个方法:

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player 
                       successfully:(BOOL)flag {

    myButton.enabled = YES;

}

并在开始播放声音时禁用该按钮:
...
theAudio.numberOfLoops = -1;
[theAudio prepareToPlay];

myButton.enabled = NO;

[theAudio play];

关于iphone - 检测音频文件是否正在播放-iPhone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3941352/

相关文章:

javascript - 如何使用 JavaScript 判断应用程序是否安装在 ios 设备上?

java - 如何使用mousePressed点击一次播放,点击两次停止?

ios - AUSampler 的这个预设有什么问题?

audio - 使用带有内部DAC的I2S在ESP32上播放WAV时出现问题

android - 在phonegap媒体插件中将声音文件的音量设置为0会引发nullpointer异常?

ios - AVAudioEngine多个AVAudioInputNodes无法完美同步播放

audio - 连接节点上的 AVAudioEngine 崩溃

iphone - 设置隐藏 : has unwanted delay

iphone - 如何从另一个 iOS APP 启动 Health iOS 应用程序

iOS map 样式配置向上滑动?