2015-07-01 114 views
4

我需要使用swift创建自定义视频插件。但我不知道如何获得视频全部持续时间和当前播放时间。在我的控制台刚出现这个输出,C.CMTime。我不确定我的代码有什么问题。如何获取视频全部持续时间和当前播放时间?

我的代码

let url = NSBundle.mainBundle().URLForResource("Video", withExtension:"mp4") 
let asset = AVURLAsset(URL:url, options:nil) 
let duration: CMTime = asset.duration 

println(duration) 

请指点。谢谢。

回答

5

您可以使用CMTimeGetSeconds将CMTime转换为秒。

let durationTime = CMTimeGetSeconds(duration) 
+0

进口AVFoundation – NSDeveloper

+0

我得到这个错误信息, 'Float64' 是无法转换为 'CMTime' –

+0

为什么你再次转换Float64到CMTime? – NSDeveloper

0

使用IOS目的C概念

- (NSTimeInterval) playableDuration 
{ 
    // use loadedTimeRanges to compute playableDuration. 
    AVPlayerItem * item = _moviePlayer.currentItem; 

    if (item.status == AVPlayerItemStatusReadyToPlay) { 
    NSArray * timeRangeArray = item.loadedTimeRanges; 

    CMTimeRange aTimeRange = [[timeRangeArray objectAtIndex:0] CMTimeRangeValue]; 

    double startTime = CMTimeGetSeconds(aTimeRange.start); 
    double loadedDuration = CMTimeGetSeconds(aTimeRange.duration); 

    // FIXME: shoule we sum up all sections to have a total playable duration, 
    // or we just use first section as whole? 

    NSLog(@"get time range, its start is %f seconds, its duration is %f seconds.", startTime, loadedDuration); 


    return (NSTimeInterval)(startTime + loadedDuration); 
    } 
    else 
    { 
    return(CMTimeGetSeconds(kCMTimeInvalid)); 
    } 

} 
+0

对不起,我没有迅速的语言想法 –

+0

,但在运作良好的objective-c –

相关问题