[英]AVAudioPlayer duration is not matching with the actual duration of audio file
我正在连接 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);
}
尝试在获得持续时间之前调用player.prepareToPlay()
。 它将向您显示更准确的持续时间。
为了完全准确,请尝试:
CMTimeGetSeconds(AVURLAsset.init(url: myURL, options: nil).duration)
你应该用这个
在示例中,只需将“commonMetadata”更改为“duration”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.