0

我似乎无法使用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);
4

2 回答 2

0

我意识到现在对你来说可能为时已晚,但我怀疑原因是 AVQueuePlayer 正在立即自动释放,所以没有播放声音。试试[[AVQueuePlayer alloc] initWithItems:sounds]吧。

于 2012-12-10T06:20:00.850 回答
0

我做了几乎相同的想法,但我没有AVQueuePlayer *player在函数中声明,而是在interface.

于 2013-01-30T14:45:23.763 回答