Dav*_*ray 8 iphone objective-c avaudiorecorder ios
我正在录制音频AVAudioRecorder,现在我想获得录制音频的准确持续时间,我怎么能得到它.
我试过这个:
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:avAudioRecorder.url options:nil];
CMTime time = asset.duration;
double durationInSeconds = CMTimeGetSeconds(time);
Run Code Online (Sandbox Code Playgroud)
但我的time变量返回NULL并durationInSeconds返回'nan',这意味着什么是nan.
UPDATE
user1903074答案已经解决了我的问题,但只是为了好奇,是没有任何方式做到这一点AVAudioplayer.
Dil*_*lip 14
如果你使用AVAudioPlayer的AVAudioRecorder比你可以得到audioPlayer.duration并得到时间.
像这样.
NSError *playerError;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:yoururl error:&playerError];
NSlog(@"%@",audioPlayer.duration);
Run Code Online (Sandbox Code Playgroud)
但是,只有当你使用AVAudioPlayer同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];
}
}
Run Code Online (Sandbox Code Playgroud)
钢,你可以得到一些延迟,因为他们是一些微秒值,我不知道如何剪辑它.但就是这样.
| 归档时间: |
|
| 查看次数: |
6467 次 |
| 最近记录: |