如何获取 iPhone 中录制的音频的时间?

2023-12-23

我正在使用录制音频AVAudioRecorder,现在我想获得我录制的音频的确切持续时间,我怎样才能得到它。

我试过这个:

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

But my time变量返回 NULL 和durationInSeconds返回'nan',nan是什么意思。

UPDATE

user1903074答案已经解决了我的问题,但只是出于好奇,有什么方法可以做到这一点而不需要AVAudioplayer.


如果您正在使用AVAudioPlayer with AVAudioRecorder比你能得到的audioPlayer.duration并争取时间。

像这样。

 NSError *playerError;

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

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

但只有当你使用AVAudioPlayer with AVAudioRecorder.

UPDATE

或者你可以这样做。

//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];
    }
}

钢你可能会得到一些延迟,因为有一些微秒值,而且我不知道如何剪辑它。但仅此而已。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取 iPhone 中录制的音频的时间? 的相关文章

随机推荐