我有一个上传到服务器上的视频文件。该文档的名称不包含任何扩展名。 我必须从服务器下载该文档(实际上是一个视频文件)并播放它。 我需要知道如何获得该文件的扩展名。我没有在我的网址中指定它。
就像 / var / mobile / Applications / B18D9BE8-6E1D-43F0-8240-A909B9A27F7C / Documents / XXX / docdata / ABC / XYZ
XYZ是我想要播放的文件。它实际上是一个保存在服务器上的视频文件。
在Android中,我们执行类似解析URI的操作。我们在iOS中有类似的东西。
答案 0 :(得分:0)
一般方法。查看文件的元数据以确定它是哪种vidoe类型。这应该在文件本身提供。
答案 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
}