我有AVAudioPlayer实例播放音乐。该实例位于我主窗口主视图的控制器中 - 它不是很花哨,但它有效:
中的.h
@interface ViewController () {
AVAudioPlayer *music;
}
@end
<。> <。>
- (void)viewDidLoad
{
[super viewDidLoad];
music = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/music01.mp3", [[NSBundle mainBundle] resourcePath]]] error:nil];
[music playAtTime:0]; // play from start
[music prepareToPlay];
}
-(void)playMusic {
if (music) {
[music play];
}
}
到目前为止一切顺利。除非我将视图(以编程方式,使用它自己的NSViewController)添加到主视图,否则音乐会停止。突然。这是正常的吗?我做错了什么?
答案 0 :(得分:0)
我的直觉是,当该视图添加到窗口时,您以某种方式在AVAudioPlayer
实例上调用stop。您可以通过多种方式对其进行调试,但是,我在stop
方法中设置了一个符号断点(您可以在此处详细了解此类断点),看看它是否被调用从哪里来。此外,检查在添加新视图时是否再次呼叫viewDidLoad
(由于您可能已继承)
否则,添加视图无法触发可能会阻止您的实例的系统问题。