gpt4 book ai didi

iphone - iOS6 AVAudioPlayer - AAC 音频文件持续时间始终返回 0

转载 作者:行者123 更新时间:2023-12-03 19:41:30 24 4
gpt4 key购买 nike

我正在将一个使用 aac 音频文件的应用程序移植到 iOS6,我发现了一个奇怪的行为,当我尝试获取(有效)aac 音频文件的持续时间时,它总是返回 0,在 iOS4 中iOS5 运行良好。

¿AvAudioPlayer 类上是否存在影响 duration 属性的错误?我读到过有关 currentTime 属性的一些问题。

代码如下:

NSURL* urlFichero = [NSURL fileURLWithPath:rutaFichero];
avaPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: urlFichero error:nil];
segundos = avaPlayer.duration;
NSLog(@"[ControladorFicheros] Fichero: '%@' Duración: '%f'", nombreFichero, segundos);
[avaPlayer stop];
[avaPlayer release];

谢谢;)

最佳答案

最后的问题是,在最新版本的 API 中,AVAudioPlayer 似乎只在文件准备好播放时返回正确的持续时间,这就是为什么我的解决方案是错误的,获取文件持续时间的正确方法文件(以秒为单位)如果您不想重现它是:

AVURLAsset *asset = [[[AVURLAsset alloc] initWithURL:anURI_ToResource 
options:[NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES],
AVURLAssetPreferPreciseDurationAndTimingKey,
nil]] autorelease];

NSTimeInterval durationInSeconds = 0.0;
if (asset)
durationInSeconds = CMTimeGetSeconds(asset.duration) ;

Swift

let asset = AVURLAsset(url: url, options: [AVURLAssetPreferPreciseDurationAndTimingKey: true])
let durationInSeconds = CMTimeGetSeconds(asset.duration)

关于iphone - iOS6 AVAudioPlayer - AAC 音频文件持续时间始终返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13497634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com