我现在已经遇到过这么多次了。客户端发给我一些.mp3s来放入项目。当我尝试使用此代码播放它们时:
SKAction *play = [SKAction playSoundFileNamed:@"birds.mp3" waitForCompletion:NO];
[self runAction:play];
[self runAction:play];
该应用程序给我一个例外并在该行崩溃。
我拿了mp3并将其转换为.wav(在Reaper中),更改代码以加载它,没有问题,播放完美。我想也许原来的mp3有一些编码问题,所以我在Reaper中打开它,重新导出就像一个新的mp3,仍然崩溃。
当它崩溃时,我会查看堆栈跟踪(我认为我正在使用它)并且它显示了这个,看起来它可能遇到ID3问题但是? Reaper使用LAME编码mp3,我不知道它是不合规还是什么?有人碰到这个吗?
0x187321a98: b 0x187321a54 ; ID3ParserHandle::ID3ParserHandle(void*, int (*)(void*, unsigned int, unsigned int, unsigned int, void**, unsigned int*)) + 492
答案 0 :(得分:1)
这样的事情比较常见。某些程序会创建非标准音频文件,而AVPlayer可能会遇到某些标准但不常用的文件容器或功能或压缩格式的问题。
最简单的解决方法是使用其他程序重新编码文件。以Audacity为例。在这种情况下,如果问题仍然存在,请务必从mp3中删除任何ID3标签(作者,专辑名称等)。