2011-04-29 1 views
2

:AVAssetTrack : 오디오 트랙에 timeRange가 없습니까? 다음과 MP3 파일로

AVURLAsset* audio = [[AVURLAsset alloc]initWithURL:audioUrl options:nil]; 
AVAssetTrack* audioTrack = [[audio tracksWithMediaType:AVMediaTypeAudio] 
    objectAtIndex:0]; 
CMTime audioDuration = audio.duration; 

NSLog(@"audioDuration: %qi/%i; audioTrackDuration: %qi/%i", 
     audioDuration.value, audioDuration.timescale, 
     audioTrack.timeRange.duration.value, 
     audioTrack.timeRange.duration.timescale); 

내가 얻을 : 내가 나중에 사용을 할 때 트랙 자체가 좋은 것을

audioDuration: 1513728/44100; audioTrackDuration: 0/1 

참고. 나는 그것이 비동기 키 - 값 코딩 문제가 될 거라고 생각하지만,이 NSParameterAssert 통과하는 것 같다

AVKeyValueStatus trStatus = [audioTrack statusOfValueForKey:@"timeRange" 
    error:&theError]; 
NSParameterAssert(trStatus == AVKeyValueStatusLoaded); 

거래는 무엇입니까? 이것은 형식의 단점입니까?

답변

2

나중에 오는 사람 : 내가 말할 수있는 한, AVAssetTrack은 오디오 인 경우 시간 범위가 없으므로 AVAsset 기간을 사용해야합니다. 그래도 이것이 MP3에만 해당되는지 확실하지 않습니다.