作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 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
有什么方法可以做到这一点。
最佳答案
如果您将 AVAudioPlayer
与 AVAudioRecorder
一起使用,那么您可以获得 audioPlayer.duration
并获取时间。
像这样。
NSError *playerError;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:yoururl error:&playerError];
NSlog(@"%@",audioPlayer.duration);
但前提是您将 AVAudioPlayer
与 AVAudioRecorder
一起使用。
更新
或者你可以这样做。
//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/
我是一名优秀的程序员,十分优秀!