好吧,我有两个问题。我正在使用 AVAudioPlayer 播放 .caf 格式的简单音频文件。我想做的是有一个播放和暂停按钮。这是一个简单的 IBAction 示例,用于从按钮播放音频。
- (IBAction) clear {
NSString *path = [[NSBundle mainBundle] pathForResource:@"clear" ofType:@"caf"];
AVAudioPlayer* myAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
myAudio.delegate = self;
myAudio.volume = 1.0;
myAudio.numberOfLoops = 0;
[myAudio play];
}
因此,当我继续使用该方法创建另一个 IBAction 时...
- (IBAction) stopaudio {
[myAudio stop];
audioPlayer.currentTime = 0;
}
我编译并且 xcode 告诉我 stopaudio IBAction 中的 myAudio 没有定义。如何修复它以便能够在另一个 IBAction 中访问 myAudio?
我的第二个问题是我正在使用 NavigationController 来设置 TableView,当我进行选择时,它会将我带到带有后退按钮的 UIView 以返回到 TableView。当我回到 TableView 时,我想要做的是杀死我在 UIView 中播放的任何音频。上面的代码是我将在 UIView 中使用的代码的一部分。
还有一个快速的问题。假设我有一个 1 分钟长的音频文件。再次单击播放将在旧实例完成播放之前重叠该音频的新实例。如何检查 myAudio 是否正在播放,并且在 myAudio 完成播放之前不允许再次播放?
谢谢你!