gpt4 book ai didi

iphone - 如何在 iphone 中获取录制音频的时间?

转载 作者:可可西里 更新时间:2023-11-01 03:06:58 26 4
gpt4 key购买 nike

我正在使用 AVAudioRecorder 录制音频,现在我想获得录制音频的准确持续时间,我该如何获取。

我已经试过了:

AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:avAudioRecorder.url options:nil];
CMTime time = asset.duration;
double durationInSeconds = CMTimeGetSeconds(time);

但是我的 time 变量返回 NULL 并且 durationInSeconds 返回 'nan',nan 是什么意思。

更新

user1903074 答案已经解决了我的问题,但出于好奇,没有 AVAudioplayer 有什么方法可以做到这一点。

最佳答案

如果您将 AVAudioPlayerAVAudioRecorder 一起使用,那么您可以获得 audioPlayer.duration 并获取时间。

像这样。

 NSError *playerError;

audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:yoururl error:&playerError];

NSlog(@"%@",audioPlayer.duration);

但前提是您将 AVAudioPlayerAVAudioRecorder 一起使用。

更新

或者你可以这样做。

//put this where you start recording
myTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(updateTime) userInfo:nil repeats:YES];

// a method for update
- (void)updateTime {
if([recorder isRecording])
{

float minutes = floor(recorder.currentTime/60);
float seconds = recorder.currentTime - (minutes * 60);

NSString *time = [[NSString alloc]
initWithFormat:@"%0.0f.%0.0f",
minutes, seconds];
}
}

steel 你可以得到一些延迟,因为它们是一些微秒值,我不知道如何剪辑它。但仅此而已。

关于iphone - 如何在 iphone 中获取录制音频的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13872973/

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