1、获取mimetype
///根据地址 获取文件类型
+(NSString *)mimeType:(NSURL *)url{
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSURLResponse *response = [[NSURLResponse alloc] init];
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
return response.MIMEType;
}
/// 根据文件名称、或包含名称的路径,获取其mimetype
/// - Parameter path: 文件名称、或包含名称的路径
+ (NSString *)mimeTypeForName:(NSString *)path{
// [path pathExtension] 获得文件的后缀名 MIME类型字符串转化为UTI字符串
CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef)[path pathExtension], NULL);
// UTI字符串转化为后缀扩展名
CFStringRef MIMEType = UTTypeCopyPreferredTagWithClass (UTI, kUTTagClassMIMEType);
CFRelease(UTI);
// application/octet-stream,此参数表示通用的二进制类型。
if (!MIMEType) {
return @"application/octet-stream";
}
return (__bridge NSString *)(MIMEType);
}
/// 根据文件data获取
+(NSString *)mimeTypeForData:(NSData *)data{
uint8_t c;
[data getBytes:&c length:1];
switch (c)
{
case 0xFF:
return @"image/jpeg";
case 0x89:
return @"image/png";
case 0x47:
return @"image/gif";
case 0x49:
case 0x4D:
return @"image/tiff";
case 0x25:
return @"application/pdf";
case 0xD0:
return @"application/vnd";
case 0x46:
return @"text/plain";
}
return @"";
}
2、获取音频时长
//获取音频时长
NSURL *url= [Support_Special returnImageUrlStr:你的url];
AVURLAsset *audioAssetNew = [[AVURLAsset alloc] initWithURL:url options:nil];
[audioAssetNew loadValuesAsynchronouslyForKeys:@[@"duration"] completionHandler:^{
NSError * error;
AVKeyValueStatus status = [audioAssetNew statusOfValueForKey:@"duration" error:&error];
switch (status) {
case AVKeyValueStatusLoaded:
// 要更新UI的操作需要回到主线程
NSLog(@"属性载入成功,你可以访问了%0.f",CMTimeGetSeconds(audioAssetNew.duration));
{
dispatch_async(dispatch_get_main_queue(), ^{
self.placeholder_normal.text = [NSString stringWithFormat:@"%0.fs",CMTimeGetSeconds(audioAssetNew.duration)];
});
}
break;
case AVKeyValueStatusLoading:
NSLog(@"AVKeyValueStatusLoading");
break;
case AVKeyValueStatusFailed:
NSLog(@"AVKeyValueStatusFailed");
break;
case AVKeyValueStatusUnknown:
NSLog(@"AVKeyValueStatusUnknown");
break;
default:
break;
}
}];