我似乎无法使用AVQueuePlayer
播放声音。应用程序编译并运行正常,但是当调用`imageTouched'方法时,我没有得到任何音频。有人可以帮忙吗?
-(void) imageTouched
{
NSString * path1 = [[NSBundle mainBundle] pathForResource:@"sound1" ofType:@"wav"];
NSString * path2 = [[NSBundle mainBundle] pathForResource:@"sound2" ofType:@"wav"];
NSURL *url1 = [NSURL fileURLWithPath:path1];
NSURL *url2 = [NSURL fileURLWithPath:path2];
AVPlayerItem *firstSound = [AVPlayerItem playerItemWithURL:url1];
AVPlayerItem *secondSound = [AVPlayerItem playerItemWithURL:url2];
NSArray *sounds = [NSArray arrayWithObjects:firstSound, secondSound, nil];
AVQueuePlayer *player = [AVQueuePlayer queuePlayerWithItems:sounds];
[player play];
NSLog(@"%d",player.status);
}
编辑1:我已经检查过文件名(案例,拼写等)是否有任何问题,而且似乎没有。我已经能够使用以下代码播放声音,但我真的需要让AVQueuePlayer
正常工作。请帮忙!
NSString *path;
SystemSoundID soundId;
path = [[NSBundle mainBundle] pathForResource:@"sound1" ofType:@"wav"];
NSURL *url = [NSURL fileURLWithPath:path];
AudioServicesCreateSystemSoundID( (CFURLRef)objc_unretainedPointer( url), &soundId);
AudioServicesPlaySystemSound(soundId);
答案 0 :(得分:0)
我意识到现在对你来说可能为时已晚,但我怀疑原因是AVQueuePlayer正在自动释放,因此没有播放声音。请改为[[AVQueuePlayer alloc] initWithItems:sounds]
。
答案 1 :(得分:0)
我做了几乎相同的想法,但我没有在函数中声明AVQueuePlayer *player
,而是在interface
中声明了它。