iOS 获取mimetype、获取音频时长

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;
                
        }
    }];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值