MP3文件中没有关于该文件总的播放时间这个变量,因此,要通过一定的计算方法来计算出一个MP3文件的总的播放时间。MP3文件根据比特率是否变化可以分为VBR和CBR的文件,因此,对于这两种文件,计算总播放时间的方法也是不一样的。

1、CBR的MP3文件的计算方法

CBR,故名思议,Constant Bitrate,文件的比特率是固定的,也就是说每个帧的比特率也是固定的。因此,可以通过下面的公式来计算总的播放时间:

总播放时间 = 文件大小 * 8 / 比特率

(1)文件大小:文件大小是以字节为单位。一个MP3文件包括两个部分,一部分是帧数据,还有一部分就是tag,因此,这里的文件大小是指MP3文件的总大小减去tag的大小,即:

文件大小 = 文件总大小 - tag大小

其实,tag所占用的空间与整个MP3文件相比,微乎其微,几乎可以忽略不计。

(2)这里的8是指一个字节包含的比特位数。

(3)比特率:要获得比特率,首先要对MP3文件的第一个帧的Header进行解析,获得比特率的索引值,然后,查比特率索引表,即可得到比特率。

2、VBR的MP3文件的计算方法

VBR,Variable Bitrate,即文件的比特率是时刻在变化着的,每一帧的比特率是不一样的,所以要计算VBR的MP3文件的总播放时间就有点复杂。可以通过下面的公式来总的播放时间:

总播放时间 = 总帧数 * (帧的采样个数 * 1 / 采样率)

(1)总帧数:VBR的MP3文件有两种Header:XING和VBRI,这两个Header中包含了一些信息,其中就包括总帧数。每个VBR的MP3文件只包含一种Header。要判断一个MP3文件是CBR还是VBR就是根据文件是否包含这两种Header中的一种,如果包含XING或者VBRI,就是VBR文件,如果都没有,那就是CBR。这两种Header只会在VBR的MP3文件的第一帧中出现,这里对这两种Header不作介绍。

(2)采样率:首先要对MP3文件的第一个帧的帧头进行解析,获得采样率的索引值,然后,查采样率索引表,即可得到采样率。1 / 采样率:表示每个采样的时长。

(3)帧的采样个数:首先要对MP3文件的第一个帧的帧头进行解析,获得MPEG的版本,然后根据MPEG的采样数索引表查找到帧的采样个数。比如:MPEG1,LayerIII,对应的就是1152。帧的采样个数 * 1 / 采样率:表示一帧的时长。

MP3文件如何计算总播放时间相关推荐

  1. 使用go语言GUI库实现对mp3文件的播放1(简单的播放mp3文件)

    使用go语言GUI库实现对mp3文件的播放1(简单的播放mp3文件) 使用beep播放mp3文件(10num) 使用go语言GUI库fyne实现音乐播放器 要是想使用go语言实现播放mp3需要借助be ...

  2. 常用的视频格式文件WEB端播放代码

    1.avi格式 代码片断如下: <object id="video" width="400" height="200" border= ...

  3. 磁带转换成MP3 文件,摆脱复读机

    一.就是3.5接口的直录线,2元一根,接入声卡的Line IN口,另一端接入录音机的耳机口,用goldwave或Audition.exe录音,在音量属性中选录音选项,来源选Stereo 即立体声输入, ...

  4. js获取播放器播放时间和停止播放

    html代码 1 <video id="myVideo" class="video-active" width="100%" heig ...

  5. MPEG简介 + 如何计算 CBR/VBR MP3 的播放时间

    [此文目的]  1.  了解 MPEG相关知识  2.  了解 MP3 的常见术语含义  3.  详解 VBR MP3的帧头格式及含义  4.  搞懂如何去计算 CBR和 VBR的 MP3文件的播放时 ...

  6. MPEG简介 + 如何计算CBR 和VBR的MP3的播放时间

    1. 声明 本文所写内容,多数整理自互联网,版权归原作者所有 笔者知识有限,文中难免有误,欢迎批评指正,admin (at) crifan.com 觉得此文对你有帮助,想要发邮件来感谢的,也欢迎哈,^ ...

  7. Android 入门第九讲01-音频(本地音乐播放,暂停,继续播放,获取播放时间,快进到指定位置,变速播放,播放data/data/目录下的音频文件,播放网络歌曲)

    Android 入门第九讲01-音频(本地音乐播放,暂停,继续播放,获取播放时间,快进到指定位置,变速播放,播放data/data/目录下的音频文件,播放网络歌曲) 准备 1.储存在raw文件夹 2. ...

  8. JB的测试之旅-上传的mp3文件播放不了

    温馨提示:阅读时长约2分钟: 前言 公司是资讯类产品,因此后台采用了开源的编辑器供运营原创文章.上传图片.视频等,这不,运营上传完视频发布文章后,发现文章里面的音频播放不了: 而这,就是故事的开端: ...

  9. 【工具】音乐播放相关工具,音乐文件格式转换工具,MP3文件转换成arduino可以直接播放的wav格式,MP3转WAV工具...

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 最近玩播放音乐又用到了audio.online-convert这个音乐转换工具,好用, ...

最新文章

  1. 成为MySQL DBA 博客系列-数据库升级
  2. Safari、IE浏览器出现允许改写地址栏的漏洞
  3. 手机适配鸿蒙教程,鸿蒙系统支持手机介绍
  4. 【渝粤题库】陕西师范大学200301几何学作业(高起本)
  5. leetcode之回溯backtracing专题2
  6. 1.8 编程基础之多维数组 04 错误探测 python
  7. phpcmsV9 排序规则 - 小结篇
  8. NextCloud Installation on CentOS 7 server
  9. 气体管道管径及流量对照表_建筑用管道产品常见技术质量问答汇总
  10. Redis底部的几种存储结构(sds、dict、ziplist、intset、skiplist)
  11. 【Python小程序】第2讲:如何将TXT文件转换成CSV文件?
  12. Java 操作Word书签(三):用文本、图片、表格替换书签
  13. 搜索题集整理(DFSBFS)
  14. 爬取12306验证码图片
  15. 最简单实用的网易云爬虫!cloudmusic库带你起飞,歌曲、用户、评论信手捏来
  16. 硬件开发总结笔记一:电阻
  17. 5万字长文!SpringBoot 操作 ElasticSearch 详解
  18. 80老翁谈人生(249):律师想干什么?
  19. mysql对时间范围的查询
  20. python下载抖音视频_抖音好看的视频你想下载吗?

热门文章

  1. 【flowable】十三、flowable会签
  2. WPS如何制作流程图
  3. 【SQL Profile】coe_xfr_sql_profile.sql内容
  4. hutool工具ExcelWriter设置单个单元格样式
  5. RSA Conference 2020 APJ为全球观众提供虚拟学习体验活动,领先专家畅谈网络安全的未来工作
  6. 【bug】上传图片出现错误(413 Request Entity Too Large)
  7. HRMS是什么?有什么作用?
  8. 事业单位计算机专业知识
  9. td标签内文字内容颜色改变
  10. 工程项目中:replace的慎用