iOS获取视频文件大小和时长
1 、获取网络链接的视频大小和时长
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil];// url:网络视频的连接NSArray *arr = [asset tracksWithMediaType:AVMediaTypeVideo];// 项目中是明确媒体类型为视频,其他没试过CGSize videoSize =CGSizeZero;for (AVAssetTrack *track in arr) {if([track.mediaType isEqualToString:AVMediaTypeVideo]){if (track.totalSampleDataLength >= 1048576) {//1048576bt = 1M 小于1m的显示KB 大于1m显示Mlable.text = [NSString stringWithFormat:@"%.2lldM",track.totalSampleDataLength/1024/1024];} else {lable.text = [NSString stringWithFormat:@"%.1lldKB",track.totalSampleDataLength/1024];}videoSize = track.naturalSize;}}
2 、获取保存在你app沙盒中的视频文件
导入 #import <AVFoundation/AVFoundation.h>
/*** @method** @brief 根据路径获取视频时长和大小* @param path 视频路径* @return 字典 @"size"--文件大小 @"duration"--视频时长*/
- (NSDictionary *)getVideoInfoWithSourcePath:(NSString *)path{AVURLAsset * asset = [AVURLAsset assetWithURL:[NSURL fileURLWithPath:path]];CMTime time = [asset duration];int seconds = ceil(time.value/time.timescale);NSInteger fileSize = [[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil].fileSize;return @{@"size" : @(fileSize),@"duration" : @(seconds)};
}
3 、获取PHAsset 文件大小
PHAssetResource *resource = [[PHAssetResource assetResourcesForAsset:asset] firstObject];long long size = [[resource valueForKey:@"fileSize"] longLongValue];
和PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];options.version = PHVideoRequestOptionsVersionOriginal;[[PHImageManager defaultManager] requestAVAssetForVideo:asset options:options resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {if ([asset isKindOfClass:[AVURLAsset class]]) {AVURLAsset* urlAsset = (AVURLAsset*)asset;NSNumber *size;[urlAsset.URL getResourceValue:&size forKey:NSURLFileSizeKey error:nil];dispatch_async(dispatch_get_main_queue(), ^{});} else {imageLable.text = [NSString stringWithFormat:@"0KB"];}}];
iOS获取视频文件大小和时长相关推荐
- Android 如何获取视频的总时长
在做视频的时候,往往需要获取视频的总时长,比较常用的就是用getDuration()方法获取,但是在获取的时候总是显示获取到的值为-1,在网上找答案的时候,大多解决方案写的都比较简略,对于我这样入门没 ...
- C# 获取视频文件播放时长
以前是用xp (32位)系统,获取视频文件长度是通过调用Shell32.dll来读取文件信息得到的,最近换win7(32位)系统,编译以前的项目代码发现无法读取了,代码没有改动,拿到在xp下运行也不行 ...
- Android 通过MediaMetadataRetriever获取视频封面和时长
import android.graphics.Bitmap import android.media.MediaMetadataRetrieverobject MediaUtil {fun getF ...
- iframe标签解析腾讯视频链接的获取不到总时长的解决方案(Txp.play.js)
记一次项目总结: 腾讯视频(Txp.play.js) <iframe> API 的使用 由于视频URL是来自腾讯视频,所以会出现一个这样的情况:无法获取到用户所看的该视频的总时长,那麽就得 ...
- Android 播放raw文件夹下音频文件,本地MP3文件播放,播放云端MP3文件,获取MP3文件播放时长
1.复制音频文件到raw文件夹下 2.实例化音频文件 private final MediaPlayer.OnCompletionListener beepListener = new MediaPl ...
- Unity 基础 之 在 UGUI 上简单实现VideoPlayer视频播放的功能,简单暂停播放/显示视频名称/显示时长/拖拽播放等
Unity 基础 之 在 UGUI 上简单实现VideoPlayer视频播放的功能,简单暂停播放/显示视频名称/显示时长/拖拽播放等 目录 Unity 基础 之 在 UGUI 上简单实现VideoPl ...
- Java获取播放文件的时长
package org.jeecg.modules.diy.util;import it.sauronsoftware.jave.Encoder; import it.sauronsoftware.j ...
- 解析视频分辨率和时长
解析视频分辨率和时长 下载工具 使用的工具是:FFmpeg 分为win 和 linux 需要提前安装 FFmpeg windows版本 linux版本 有道笔记 windows 安装 将下载的进行解压 ...
- Python获取.wav音频的时长
要求是这样的: 给你一个.wav的音频,要求获取这个音频的时长.这里需要用到两个模块,contextlib和 wave. 方法1: import contextlib import wave file ...
最新文章
- 使用Nagios监控网页
- 使用 Fries 创建性感的 Android 风格移动应用界面
- DynamicData for Asp.net Mvc留言本实例 中篇 新建.删除.数据验证
- Cacti性能优化和监控H3C交换机
- 用户界面设计的一些方法和基本原则
- Linux基金会六大项目合并成LF Networking Fund
- [Java基础]接口基础
- c语言中的所有关键字,C语言中的32个关键字
- SpringCloud 超详细个人笔记
- 做过CC1020的苦逼前人告诉你(分拿来)
- 【C/C++】理解传值引用和调用引用:函数调用中,为变量赋值,传入其指针;为指针赋值,传入指针的指针
- python 类内置方法
- Docker Redis 安装
- repast HPC初探(运行其自带例子过程中出现的问题)
- Java内部类介绍 - 局部内部类和匿名内部类
- 微信视频号下载短视频的步骤
- MediBangPaint Pro for mac(优秀漫画制作软件)
- 一次学会两种方式将 pyton 打成 exe
- 好强的谷歌插件,不用写代码就能爬虫!
- Spring JDBC 批量操作 数据