我正在连接2个音频文件。然后我通过AVAudioPlayer播放该音频文件。连接文件播放完美。但是,当我想获得audioPlayer的持续时间时,它显示错误的持续时间,2秒。但我的连锁音频文件的实际持续时间是7秒。问题出在哪儿?在此先感谢您的帮助。
-(void)playAudio{
part1 = [NSMutableData dataWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"Mumu night its getting dark" ofType: @"mp3"]];
part2 = [NSMutableData dataWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"Mumu night did you study" ofType: @"mp3"]];
[part1 appendData: part2];
audioPlayer=[[AVAudioPlayer alloc] initWithData:part1 error:NULL];
audioPlayer.delegate = self;
[audioPlayer play];
duration = (int)audioPlayer.duration;
NSLog(@"audio duration: %d", duration);
}
答案 0 :(得分:0)
在获得持续时间之前尝试调用 player.prepareToPlay()
。它会向您显示更准确的持续时间。
为了完全准确,请尝试:
CMTimeGetSeconds(AVURLAsset.init(url: myURL, options: nil).duration)
答案 1 :(得分:-1)
你应该使用这个
在示例中只需将“commonMetadata”更改为“duration”。