我正在使用EZAudio框架,您可以找到here。我很难搞清楚如何获取音频文件的录制时间和总时间。在我录制时,我想要一个标签显示导引头的位置,另一个标签显示录制的总时间。例如:2:23 | 3:32。位置标签将每秒更新一次,如果用户记录的时间超过了使文件更长的总时间,则总时间标签才会开始更新。
我尝试过:在核心音频方面,我是一个完全的菜鸟。我正在使用EZAudio库中的OpenGL音频图,它随着我的记录而更新,因此必须有一种方法来进行一些转换来计算时间。
对于我考虑使用该文件准备AVAudioPlayer的总时间,请抓住该方式的持续时间,但这仅在用户未录制时才有效。如果他们正在录制,那么我需要一种方法来动态更新两次。
在另一个应用程序中我使用AVAudioRecorder(这不适用于我的目的),我可以创建NSTimer
并激活timerUpdate
函数:
_timer = [NSTimer scheduledTimerWithTimeInterval:.01f
target:self
selector:@selector(timerUpdate)
userInfo:nil
repeats:YES];
- (void) timerUpdate
{
if (_recording)
{
int m = _recorder.currentTime / 60;
int s = ((int) _recorder.currentTime) % 60;
_duration.text = [NSString stringWithFormat:@"%.2d:%.2d", m, s];
}
if (_playing)
{
_progress.progress = _player.currentTime/_player.duration;
}
}
EZRecorder没有currentTime
方法,所以这不起作用。我不是要求你为我编写代码,只是指出我正确的方向。