2 developerwab developerWab 于 2013.06.20 14:02 提问

iphone应用读取视频时间

在iPhone中录制视频,有没有能获取录制视频时间长度的方法?

下面是读取视频的代码:

if ([type isEqualToString:(NSString *)kUTTypeVideo] || [type isEqualToString:(NSString *)kUTTypeMovie])
{
    NSURL*videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
    videoData = [[NSData dataWithContentsOfURL:videoURL] retain];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSDateFormatter *dateFormat = [[[NSDateFormatter alloc] init] autorelease];
    [dateFormat setDateFormat:@"dd-MM-yyyy_HH:mm:SS"];
    NSDate *now = [[[NSDate alloc] init] autorelease];
    NSDate* theDate = [dateFormat stringFromDate:now];
    NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"Default Album"];
    if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
        [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:nil];
    NSString*testUser=TitleTextField.text;
    NSString *videopath= [[[NSString alloc] initWithString:[NSString stringWithFormat:@"%@/%@.mov",documentsDirectory,testUser]] autorelease];
    BOOL success = [videoData writeToFile:videopath atomically:NO];
    // Alert for showing the record video
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"You have recorded a video"
                                                   delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
    recordedVideoLabel.text=@"You have recorded Video";
}

1个回答

lanhailvcao
lanhailvcao   2013.06.20 15:58
已采纳

用AVAssets实现:

AVURLAsset *avUrl = [AVURLAsset assetWithURL:@"Here comes the url of the video"];
CMTime time = [avUrl duration];
int seconds = ceil(time.value/time.timescale);

在工程中连接CoreMedia和AVFoundation框架

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!