查找视频扩展程序

时间:2013-11-11 10:48:57

标签: ios parsing video

我有一个上传到服务器上的视频文件。该文档的名称不包含任何扩展名。 我必须从服务器下载该文档(实际上是一个视频文件)并播放它。 我需要知道如何获得该文件的扩展名。我没有在我的网址中指定它。

就像 / var / mobile / Applications / B18D9BE8-6E1D-43F0-8240-A909B9A27F7C / Documents / XXX / docdata / ABC / XYZ

XYZ是我想要播放的文件。它实际上是一个保存在服务器上的视频文件。

在Android中,我们执行类似解析URI的操作。我们在iOS中有类似的东西。

2 个答案:

答案 0 :(得分:0)

一般方法。查看文件的元数据以确定它是哪种vidoe类型。这应该在文件本身提供。

也许这会有所帮助:https://stackoverflow.com/a/5815629/1933185

答案 1 :(得分:0)

The following solution worked for me. Hope it help others as well.

        NSString* fullPath = [yourpath stringByExpandingTildeInPath];
        NSURL* fileUrl = [NSURL fileURLWithPath:fullPath];
        NSURLRequest* fileUrlRequest = [[NSURLRequest alloc] initWithURL:fileUrl cachePolicy:NSURLCacheStorageNotAllowed timeoutInterval:.1];

        NSError* error = nil;
        NSURLResponse* response = nil;
        NSData* fileData = [NSURLConnection sendSynchronousRequest:fileUrlRequest returningResponse:&response error:&error];

        NSString* mimeType = [response MIMEType];
        NSArray *components = [mimeType componentsSeparatedByString:@"/"];
        NSString *query = [components lastObject]; //gives the extension

此查询是文件扩展名。您可以根据您的分机设置if / else或开关来执行操作。

        if ([query isEqualToString:@"mp4"]) {
             yourpath = [yourpath stringByAppendingPathExtension:@"mp4"];
        }
        // likewise for all extensions

        NSData* video = [NSData dataWithContentsOfURL:fileUrl options:NSDataReadingUncached error:&error];
        if (error) {
            NSLog(@"%@", [error localizedDescription]);
            [error release];
        } else {
            NSLog(@"Data has loaded successfully.");
        }

        BOOL success = [video writeToFile:yourpath atomically:NO];

        [fileUrlRequest release];
        if (success) {
             //open your video the way you want
        }