添加新的 NSView 时,AVAudioPlayer 播放停止
Posted
技术标签:
【中文标题】添加新的 NSView 时,AVAudioPlayer 播放停止【英文标题】:AVAudioPlayer playback stops when new NSView is added 【发布时间】:2016-12-05 13:35:33 【问题描述】:我有 AVAudioPlayer 实例播放音乐。该实例位于我的主窗口主视图的控制器中 - 它不是很花哨,但它可以工作:
在.h
@interface ViewController ()
AVAudioPlayer *music;
@end
在.m中
- (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),音乐就会停止。突然。这是正常的吗?我做错了什么?
【问题讨论】:
不可能用给定的代码行来判断。 【参考方案1】:我的直觉是,当该视图被添加到窗口时,您会以某种方式在您的 AVAudioPlayer
实例上调用 stop。有很多方法可以调试它,但是,我会在 stop
方法中放置一个符号断点(你可以在 SO 上阅读更多关于这种断点的信息),看看它是否被调用以及从哪里调用。另外,请检查您在添加新视图时是否没有再次调用viewDidLoad
(由于您可能拥有的继承)
否则,添加视图不可能触发可能停止您的实例的系统问题。
【讨论】:
以上是关于添加新的 NSView 时,AVAudioPlayer 播放停止的主要内容,如果未能解决你的问题,请参考以下文章