我试图在不同的时间播放不同的声音。基于按钮按下或定时器超时等。 这是代码。有关AudioQueue的XCODE AVAudioPlayer错误:请求从包含1152帧的缓冲区中修剪0 + 1676 = 1676帧
要播放声音功能:
-(void)myPlaySound:(NSString *)mySoundFile NumberOfLoops:(int)loopsCount ofType:(NSString *)fileType
{
NSURL* musicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:mySoundFile
ofType:fileType]];
myAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];
myAudio.volume = audioVolume;
myAudio.delegate = self;
myAudio.numberOfLoops = loopsCount;
[myAudio prepareToPlay];
[myAudio play];
}
停止声音:
if([myAudio isPlaying]){
[myAudio stop];
myAudio.currentTime = 0;
}
问题:有时我得到这个错误: AudioQueue:要求修剪0 + 1676 = 1676帧从包含1152帧的缓冲区中删除
只要调用[myAudio play],就会发生错误。
任何有关这方面的帮助表示赞赏。
任何机会,你的 'myPlaySound' 被调用,同时在音频播放?那么你应该在分配不同的实例之前尝试停止播放器。 –
我不认为我在调用玩家的时候正在调用我的方法。顺便说一句,当我尝试加载另一个声音文件[在现有的地方]这个错误没有发生。我不确定,可能是因为这些音频文件的比特率不同? – user1771823