Android获取mp3音频文件总播放时长大小
在Android开发中,有时候需要处理语音播放逻辑,需要获取一个音频文件的总播放时长,方便处理相关的业务逻辑
这里,有两种情况,一种是音频文件放在手机存储目录下;另一种是音频文件在raw目录下,随APK编译打包
第一种,音频文件放在手机存储目录下
这里的filePath是指文件保存在手机目录的完整路径
/*** 获取音频文件的总时长大小** @param filePath 音频文件路径* @return 返回时长大小*/ public long getAudioFileVoiceTime(String filePath) {long mediaPlayerDuration = 0L;if (filePath == null || filePath.isEmpty()) {return 0;}MediaPlayer mediaPlayer = new MediaPlayer();try {mediaPlayer.setDataSource(filePath);mediaPlayer.prepare();mediaPlayerDuration = mediaPlayer.getDuration();} catch (IOException ioException) {LogUtil.i(TAG, ioException.getMessage());}if (mediaPlayer != null) {mediaPlayer.stop();mediaPlayer.reset();mediaPlayer.release();}return mediaPlayerDuration; }
第二种,音频文件放在raw资源目录下
这里的rawId是指raw目录下资源文件id
比如raw目录下有个名称为abc.mp3音频文件,则传入rawId就是 R.raw.abc
/*** 获取音频文件的总时长大小** @param rawId raw资源文件ID* @return 返回时长大小*/ public long getRawFileVoiceTime(int rawId) {long mediaPlayerDuration = 0L;MediaPlayer mediaPlayer = new MediaPlayer();try {Uri uri = Uri.parse("android.resource://"+getContext().getPackageName()+"/"+ rawId);mediaPlayer.setDataSource(BaseApplication.getContext(), uri);mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);mediaPlayer.prepare();mediaPlayerDuration = mediaPlayer.getDuration();} catch (Exception exception) {LogUtil.i(TAG, exception.getMessage());}if (mediaPlayer != null) {mediaPlayer.stop();mediaPlayer.reset();mediaPlayer.release();}return mediaPlayerDuration; }
Android获取mp3音频文件总播放时长大小相关推荐
- Android获取mp3音频文件播放总时长
Android获取mp3音频文件播放总时长 一般是需要文件的绝对路径,需要读取文件,转成媒体类解析,最好获取播放时长,然后关闭资源. /** * 获取音频文件的总时长大小 * * @param fil ...
- 用Python的mutagen模块获取MP3音频文件的时长
工作中碰到的需求,今天下午虽然解决了,但是不太简洁(本质上还是用的mutagen...),回家查了查试了试,用mutagen可以很容易获取MP3音频文件的长度, 一共三行代码 from mutagen ...
- java 使用mediainfo_使用mediainfo工具统计每个视频文件(媒体文件)播放时长
需求 1.运营那边需要统计大量视频文件的播放时长,并汇总记录到excel表中,问我有什么方法搞定 这边搜索了很多统计媒体文件时长的,主要有以下几种 1.使用java获取 2.使用python获取 3. ...
- Python获取mp3音频文件时长方法汇总
'''pymediainfo: pip3 install pymediainfo 版本:5.1.0不支持网络音频 ''' class pymediainfoTest():@classmethoddef ...
- android 获取手机中应用运行的时长和次数
android5.0用UsageStatsManager来获取程序运行时间 本来想用PkgUsageStats来获取的,后来看到有人说5.0以后可以直接用UsageStatsManager来获取信息, ...
- java 上传mp3文件大小,Java获取音频文件(MP3)的播放时长
最近的一个项目需要按照时间播放mp3文件,例如,播放10分钟的不同音乐. 这就意味着我得事先知道mp3文件的播放时长,以决定播放几遍这个文件. 方案一:Java的方式 找第三方的库,真的感谢这些提供j ...
- 音频通道数、采样频率、采样位数、采样个数(样本数)的概念及计算一帧音频的大小、每秒播放的音频字节大小、一帧的播放时长、音频重采样
对于下面data和linesize的解释(参考下面3.4中的av_samples_alloc_array_and_samples函数说明): 1)data是通道的意思,例如双通道,data[0]代表左 ...
- php 获取视频首帧,PHP获取视频的第一帧与时长
//获得视频文件的缩略图 function getVideoCover($file,$time,$name) { if(empty($time))$time = '1';//默认截取第一秒第一帧 $s ...
- Android 播放raw文件夹下音频文件,本地MP3文件播放,播放云端MP3文件,获取MP3文件播放时长
1.复制音频文件到raw文件夹下 2.实例化音频文件 private final MediaPlayer.OnCompletionListener beepListener = new MediaPl ...
- Android 入门第九讲01-音频(本地音乐播放,暂停,继续播放,获取播放时间,快进到指定位置,变速播放,播放data/data/目录下的音频文件,播放网络歌曲)
Android 入门第九讲01-音频(本地音乐播放,暂停,继续播放,获取播放时间,快进到指定位置,变速播放,播放data/data/目录下的音频文件,播放网络歌曲) 准备 1.储存在raw文件夹 2. ...
最新文章
- Blender钢铁机器人建模与动画全流程制作视频教程
- stm32难不难学,没学51单片机可以直接学STM32吗?
- python类变量继承_python 类的成员及继承
- Boost: 对uncaught_exceptions函数的测试
- eclipse CTRL+F Find/Replace使用正则表达式
- 30个Python极简代码,10分钟get常用技巧!
- 安卓阵营最强Soc!骁龙898即将亮相:小米12系列本月底前后首发
- Linux抓包工具tcpdump例子
- 【java学习之路】(java SE篇)013.lambda表达式
- delphi xe6 让 ListView 在 Android 可回弹[根据龟山阿卍原创修改为xe6版本]
- 投资人教你怎么写能拿到钱的商业计划书
- 魅族手机Root之后如何恢复
- Excel求和怎么操作?如何运用sum函数进行求和
- DataV构建大屏(全屏)数据展示页面
- html5 swipejs,移动web最简洁的滑动效果Swipe JS(适合初学者)
- 计算机主机清理步骤,教你4个C盘清理方法,去掉电脑90%垃圾文件
- linux cp命令的-f 参数
- 如何使用 Docker Buildx Bake 创建复杂的镜像构建管道
- java堆和栈分别存什么类型_栈、堆、方法区分别存储什么内容
- 课程设计每日总结0820