c# 获取MP3和AMR文件格式的时长
//网上摘录整理
private long GetAMRFileDuration(string fileName)
{
long duration = ;
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
{
byte[] packed_size = new byte[] { , , , , , , , , , , , , , , , };
int pos = ;
pos += ;
long lenth = fs.Length;
byte[] toc = new byte[];
int framecount = ;
byte ft;
while (pos < lenth)
{
fs.Seek(pos, SeekOrigin.Begin);
if ( != fs.Read(toc, , ))
{
duration = lenth > ? ((lenth - ) / ) : ;
fs.Close();
break;
}
ft = (byte)((toc[] / ) & 0x0F);
pos += packed_size[ft] + ;
framecount++;
}
duration = framecount * / ;
}
fs.Close();
return duration;
} //添加引用:COM组件的Microsoft Shell Controls And Automation
//然后引用 using Shell32;
//如果出现“无法嵌入互操作类型 请改用适用的接口”报错————修改引用里面的shell32属性嵌入互操作类型改为false
private long GetMP3FileDuration(string fileName)
{
ShellClass sh = new ShellClass();
Folder dir = sh.NameSpace(Path.GetDirectoryName(fileName));
FolderItem item = dir.ParseName(Path.GetFileName(fileName));
string str = dir.GetDetailsOf(item, ); // 获取歌曲时长。 var matchs = Regex.Match(str, @"(\d{2}):(\d{2}):(\d{2})");
var hour = nt.PubTool.Comm.ConvertTo.ToInt32(matchs.Groups[].Value);
var minute = nt.PubTool.Comm.ConvertTo.ToInt32(matchs.Groups[].Value);
var second = nt.PubTool.Comm.ConvertTo.ToInt32(matchs.Groups[].Value); var len = hour * + minute * + second;
return len; }
c# 获取MP3和AMR文件格式的时长的更多相关文章
- c#获取Amr文件的时长(毫秒)亲测有效
/// <summary> /// c#获取Amr文件的时长(毫秒) /// </summary> /// <param name="fileName" ...
- python 获取视频文件的大小,时长等
举例说明: import os import sys import xlwt from moviepy.editor import VideoFileClip file_dir = u"G: ...
- php使用ffmpeg获取上传的视频的时长,码率等信息
视频上传是程序员在很多时候需要用到的操作,然而上传完视频肯定要获得一些视频的详细信息,php本身是不支持信息获取的 ,所以采用ffmpeg第三方插件 首先你需要下载ffmpeg文件:官网地址:http ...
- JS 获取一段时间内的工作时长小时数
本来想是想找轮子的,但是并没有找到能用的,多数都是问题很大,所以就自己写了一个 需求说明 支持自选时间段,即开始时间与结束时间根据用户的上班及下班时间判定返回小时数 技术栈 moment.js 思考过 ...
- PHP获取视频的第一帧与时长
//获得视频文件的缩略图 function getVideoCover($file,$time,$name) { if(empty($time))$time = '1';//默认截取第一秒第一帧 $s ...
- JS指定音频audio在某个时间点进行播放,获取当前音频audio的长度,音频时长格式转化
前言: 今天接到一个需求,需要获取某个.mp3音频文件的时间长度和指定音频audio在某个时间点进行播放(比如说这个视频有4分钟,我要让它默认从第2秒的时候开始播放),这里当然想到了H5中的audio ...
- iOS:Gif动画功能(显示gif动画、获取gif动画时长、获取gif动画执行次数)
一.简单介绍 gif动画是iOS开发中很常用的一个功能,有的是为了显示加载视频的过程,更多的是为了显示一个结果状态(动画更直观). 那么如何执行gif动画,方法有很多.(这里只写一下方法三,前两种之前 ...
- vue 获取视频时长
参考资料:js获取上传音视频文件的时长 直接通过element-ui自带的上传组件结合js即可,代码如下: HTML: <el-upload class="upload-demo&qu ...
- windows server 2008 R2服务器无法通过ShellClass获取mp3音乐时长
我们先看一段代码,获取mp3播放时长: #region GetMediaDetailInfo 获取媒体文件属性信息 /// <summary> /// 获取媒体文件属性信息 /// < ...
随机推荐
- Swift数据类型
1.Swift中常用数据类型:首字母大写 Int.Float.Double.Bool.Character.String Array.Dictionary.元组类型(Tuple).可选类型Optiona ...
- Android 100多个Styles快速开发布局XML,一行搞定View属性,一键统一配置UI...
Android开发中大量使用XML代码作为界面的布局,使用styles能大幅精简XML代码. 比如下面这个界面从AlertDialog至PlacePickerWindow有19个样式相同的跳转Item ...
- [数据库]Oracle和mysql中的分页总结
Mysql中的分页 物理分页 •在sql查询时,从数据库只检索分页需要的数据 •通常不同的数据库有着不同的物理分页语句 •mysql物理分页,采用limit关键字 •例如:检索11-20条 selec ...
- C语言中 指针、引用和取值
指针是一个存储计算机内存地址的变量.从指针指向的内存读取数据称作指针的取值.指针可以指向某些具体类型的变量地址,例如int.long和double.指针也可以是void类型.NULL指针和未初始化指针 ...
- 最大公约数与欧几里得(Euclid)算法
---恢复内容开始--- 记a, b的最大公约数为gcd(a, b).显然, gcd(a,b)=gcd(|a|,|b|). 计算最大公约数的Euclid算法基于下面定理: [GCD递归定理]对于任意非 ...
- Unity3d不支持vistual studio2012?用vs2012打开unity c#脚本进行编码的方法。
unity3d是支持vs2010的,但是有很多开发者反应,unity3d中的C#脚本不能用vs2012打开.我想了一下,先进入存放C#脚本的目录,在设置里面C#文件的打开方式,选择用vs2012打开, ...
- mysql复习---仅涉及单表的操作
一.登录数据库 二.创建数据库: 三.删除数据库 四.使用数据库创建表 五.向表中插入数据 六.查询 1.查询所有数据: 2.姓名查询 3.性别查询 4.查询姓名 5.根据年龄大小查询 6.多个条件查 ...
- Android res资源文件夹的知识积累
Android的开发框架耦合性还是比较低的,逻辑和布局被原生分开了.在Eclipse一般代码写在src文件夹下,资源等写在res文件夹下. drawable文件夹:该文件夹有很多变种,主要是为了适配A ...
- Android调用系统相机以及自定义相机
0.综述 自定义相机,此处展示简单的相机功能,官方文档中还有相应关于视频拍摄的内容,此处不提 1.添加权限 <!--相机权限,数据存储--> <uses-permission and ...
- 【JAVA】浅谈java内部类
一.什么是内部类? 到底什么是内部类呢?通俗的讲,就是在类内部定义的类,包括定义在一个类的方法外面.方法里面或者代码块中. 二.为什么要使用内部类? 为什么我们要不走寻常路,把一个类定义在另一个类的内 ...