【Android】amr文件时长】的更多相关文章

一.文件时长获取 String curAudioFile = “XXX.amr”; MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(curAudioFile); mediaPlayer.prepare(); int nDuration0 = mediaPlayer.getDuration();// 单位毫秒 二.文件时长转换 private static String getAudioDuration(…
毕设项目是一个在线学习系统,教师用户有上传视频的功能,在答辩之前赶了一个demo出来,好多功能都写死了,比如课程学习进度就是被我写死在前端的一个变量,最近导师要我把项目打包发给他,这才心慌慌赶紧把这些功能补上.不知道正规的学习网站怎么做的学习进度,根据我的理解就是用户已经观看的视频时长除以整个课程的时长,这里就涉及到获取视频的时长问题了. 除了在maven中添加文件上传所需的依赖外,获取视频时长还依赖一个jave(注意啊,不是java,我最开始就是看成了java,一脸懵逼)的jar包,这个包在m…
前言: 上传音频文件,自动写入此音频文件的时长,这里用 COM组件Microsoft Shell Controls And Automation来实现. 首先 1.引用:Microsoft Shell Controls And Automation 注意:这里是1.0版本的,有的使用的是1.2版本的,如果1.0的有问题,请换成1.2的 2.代码如下 string strFileName = FileHelper.MapPath(linkUrl);//linkUrl是上传到服务器的路径 strin…
需要导入jar包:jave 1.0.2 jar 如果是maven项目,在pom.xml文件中添加: <dependency> <groupId>it.sauronsoftware</groupId> <artifactId>jave</artifactId> <version>1.0.2</version> </dependency> 具体代买如下: /** * 音频文件获取文件时长 * @param sour…
1.下载jar包:http://www.sauronsoftware.it/projects/jave/index.php 2.上代码 @RequestMapping(value = "amendFile.htm", produces = "application/json;charset=UTF-8") @ResponseBody public String amendFile(MultipartFile file, HttpServletRequest requ…
由于之前上传MP4文件没有保存视频时长,现在有需要,所以只好写代码读取时长.找了几个发现是 c/c++ 实现,或者是借助 FFmpeg 实现. 一个偶然在 GitHub 上面发现一个 c 文件,由于获取视频时长且没有依赖.其原理是获取 mvhd box,这个盒子里面创建时间.修改时间.时长等信息. 现在也开始写 c/c++ 程序,但 c# 用的熟练的关系,所以用 C# 实现了一下获取 MP4 时长. nugget:https://www.nuget.org/packages/Duration.M…
因为在项目开发时.有这种简单需求,问谷歌,网络上也有好多Utils工具类,可是比較冗余.自己就简单的写了一个简单帮助类. /** * 下载文件,更新UI简单帮助类 * * @author jarlen * */ public class DownLoadHelper { private static final int DOWN_BEGIN = 0; private static final int DOWN_UPDATA = 1; private static final int DOWN_F…
一.启动的类型 冷启 动,application没有被创建,需要先创建进程,然后启动MainActivity.由于这个过程需要fork一个新进程,所以耗时. 热启动,同上面对照,已经启动过application,并驻留在系统内存内,只是需要唤醒该进程,并启动MainActivity. 二:统计启动时间 1.物理统计 通过高速相机,从点击launcher上面的图标开始,到MainActivity的第一个可见帧,算作启动时间. 2.adb 统计 adb shell am start -w pagea…
1.在项目中添加引入:COM组件的Microsoft Shell Controls And Automation 2.在引用中找到Shell32,点击右键,在属性中将“嵌入互操作类型”的值改为“false” 3.代码 public static string GetVoiceTime(string voicePath)//voicePath为语音文件路径 { string path = HttpContext.Current.Server.MapPath(voicePath);//将虚拟路径转换…
import subprocess import os import time def getTime(flvpath,fid): #file_str = '1.flv' file_str = flvpath wg = subprocess.Popen(['ffmpeg.exe', '-i', file_str], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) (standardout, junk) = wg.communicate() an…
首先引用COM组件:Microsoft Shell Controls And Automation,需要引用1.2版本的,1.0的会出问题. 这里需要注意DLL的属性Embed Interop Type 即 嵌入互操作类型 设为False,否则会引起互操作类型异常. 代码: string strFileName = Server.MapPath("~/00125ca6293e6109161b6fa91d03473a.mp3"); string dirName = System.IO.P…
由于项目需要,我需要给系统加权限,这真是一个让人头疼的问题,如果要每个业务方法都加上权限判断逻辑,那真的不敢想象是多么大的工作量,日后有变动的话,我会不会发疯? 所以我必须利用之前学到的AOP编程,在需要进行权限判断的业务方法前后执行一些权限判断,可是呢AOP已经被我忘记了. 幸好,百度网盘里有之前存的视频(JAVA高级进阶(张孝祥老师),shiro(孔浩老师)). 可是项目有时间要求,我必须在最短的时间内完成"加权限"这个任务.所以我在给领导报告我需要多久能研究好权限的时候,首先自己…
需求 1.运营那边需要统计大量视频文件的播放时长,并汇总记录到excel表中,问我有什么方法搞定 这边搜索了很多统计媒体文件时长的,主要有以下几种 1.使用java获取 2.使用python获取 3.使用mediainfo工具获取 由于自己对java刚懂点基础,要琢磨几天才能写出来,而python代码下载的第三方模块运行时总是报错.一时半会无法解决 最终采用mediainfo工具 1.下载和安装mediainfo工具 这边下载使用的mediainfo工具是1.8版本的  2.简单使用此工具查看一…
方法一: 在项目开发过程中,需要获取音视频文件时长.查询资料后发现 JAVE能够完美得到想要的结果,JAVE项目简介如下: The JAVE (Java Audio Video Encoder) library is Java wrapper on the ffmpeg project. Developers can take take advantage of JAVE to transcode audio and video files from a format to another. I…
最近在做H.265 编码,原本只是做编码器的实现,但客户项目涉及到ts的封装,搞得我不得不配合了解点ts方面的东西.下面技术文档不错,转一下. ts流中的时间估计 我们知道ts流中是没有时间信息的,我门来看看ffmpeg是怎么估计其duration的 方法1.通过pts来估计 static void estimate_timings_from_pts(AVFormatContext *ic, int64_t old_offset) { AVPacket pkt1, *pkt = &pkt1; A…
ts流中的时间估计 我们知道ts流中是没有时间信息的,我门来看看ffmpeg是怎么估计其duration的 方法1.通过pts来估计 static void estimate_timings_from_pts(AVFormatContext *ic, int64_t old_offset) { AVPacket pkt1, *pkt = &pkt1; AVStream *st; int read_size, i, ret; int64_t end_time; int64_t filesize,…
序言:------------- 此文档旨在描述Android.mk文件的语法,Android.mk文件为Android NDK(原生开发)描述了你C/C++源文件.为了明白下面的内容,你必须已经阅读了docs/OVERVIEW.TXT的内容,它解释了Android.mk文件扮演的角色和用途. 概述:--------- 写一个Android.mk文件是为了向生成系统描述你的源代码.更明确的说: - 这个文件实际上是GNU Make文件的一小片段,它会被生成系统解析一次或多次.因此,你应该在And…
[Android-NDK(Native Development Kit)  docs文档] NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk.   Android.mk文件是GNU Makefile的一小部分,它用来对Android程序进行编译. 因为所有的编译文件都在同一个 GNU MAKE 执行环境中进行执行,而Android.mk中所有的变量都是全局的.因此,您应尽量少声明变量,不要认为某些变量在解析过程中不会被定义. 一个A…
本页介绍了 ndk-build 所使用的 Android.mk 编译文件的语法. 概览 Android.mk 文件位于项目 jni/ 目录的子目录中,用于向编译系统描述源文件和共享库.它实际上是编译系统解析一次或多次的微小 GNU makefile 片段.Android.mk 文件用于定义 Application.mk.编译系统和环境变量所未定义的项目范围设置.它还可替换特定模块的项目范围设置. Android.mk 的语法支持将源文件分组为模块.模块是静态库.共享库或独立的可执行文件.您可在每…
/// <summary> /// c#获取Amr文件的时长(毫秒) /// </summary> /// <param name="fileName">文件路径</param> /// <returns></returns> private long GetAMRFileDuration(string fileName) { ; FileStream fs = new FileStream(fileName, F…
android使用 MediaMetadataRetriever 获取视频文件的 总时长 和视频的分辨率. 根据该方式获取视频信息可以看出不仅仅可以获取时长和分辨率,还能获取到其他的一些视频信息,不错还是很强大的,不用自己去解析mp4文件了.此demo只是获取的mp4文件,其他的多媒体文件也可以获取到相应信息,比如mp3: private void getPlayTime(String mUri) { android.media.MediaMetadataRetriever mmr = new…
一.什么是启动时长? 1.启动时长一般包括三种场景,分别是:新装包的首次启动时长,冷启动时长.热启动时长 冷启动 和 热启动 : (1)冷启动:当启动应用时,后台没有该程序的进程,此时启动的话系统会分配一个新的进程给应用. (2)热启动:程序的进程依然存在,启动时通过已有进程启动进入到Activity显示页面的,就是热启动,或者从Android官网来看我们获取到的其实是温启动时长,就是Activity不存在的情况. (3)新装包的启动时长: 新装包的启动时长,预估是最长的,并且在5.0以下及5.…
amr文件的路径正确,但是android 却不能播放出来. 调试发现时根本就没有下载下来 原因: IIS服务器不允许下载该文件,需要配置MIME 解决方法: 进入IIS目录,配置MIME…
前言 在Android里获取视频的信息主要依靠MediaMetadataRetriever实现 获取最佳视频预览图 所谓的最佳就是MediaMetadataRetriever自己计算的 /** * 获取视频缩略图 * @param vedioFile * @return */ public static Bitmap getVedioThumbnail(File vedioFile){ if (!vedioFile.exists()){ L.e("视频文件不存在"); return n…
最近的一个项目需要按照时间播放mp3文件,例如,播放10分钟的不同音乐. 这就意味着我得事先知道mp3文件的播放时长,以决定播放几遍这个文件. 方案一:Java的方式 找第三方的库,真的感谢这些提供jar包的高手,找到一个项目:jaudiotagger. try { MP3File file = new MP3File("E:\\music\\光辉岁月.mp3"); MP3AudioHeader audioHeader = (MP3AudioHeader)file.getAudioHe…
1.AlarmManager,顾名思义,就是“提醒”,是Android中常用的一种系统级别的提示服务,可以实现从指定时间开始,以一个固定的间隔时间执行某项操作,所以常常与广播(Broadcast)连用,实现闹钟等提示功能 2.AlarmManager的常用方法有三个: (1)set(int type,long startTime,PendingIntent pi): 该方法用于设置一次性闹钟,第一个参数表示闹钟类型,第二个参数表示闹钟执行时间,第三个参数表示闹钟响应动作. (2)setRepea…
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := live555 MY_SRC_PATH := $(LOCAL_PATH)/ MY_All_Files := $(shell find $(MY_SRC_PATH)/.) MY_All_Files := $(MY_All_Files:$(MY_SRC_PATH)/./%=$(MY_SRC_PATH)%) MY_C_CPP_LIST := $(filter %.cpp…
Android SDK 更新时修改hosts文件仍然无法更新,此时必定万分蛋疼.在hosts文件中更换了各种ip,仍然解决不了!!!!!!!!!!!!!!? 第一步: 打开此软件,等待服务器连接 第二步: 连接成功后切换到这个选项卡 注:地址 127.0.0.1         端口 8580 第三步: 在Eclipse中打开SDK Manager,或找到SDK目录下的SDK  Manager.exe 打开之后显示SDK更新列表界面: 注:尚未成功,此时需要设置代理端口 第四步: 打开 Tool…
问题 当使用Git比较一个大文件(几十兆数量级)版本见差异时,会一直等待加载,且内存消耗很大,导致其他进程很难执行.任务管理器中,可以看到此时的TortoiseGitMerge吃掉3G左右的内存. 原因 文件太大,加载很慢. 解决方法 其实,我们在使用[Compare with base]这个功能时,想要比较版本间文件的不同之处,因此,无需加载整个文件内容,只显示出文件中的不同内容即可.设置如下: 先使用[Compare with base]比较一个小文件,否则,肯能要等很长时间去加载一个大文件…
在angular中使用resumable.js遇到的一个问题:大视频上传到99-100%时,此时正在上传最后一片,最后一片的xhr一直是pending状态.原因插件会检查第一片和最后一片的元数据,检测到最后一片后所有片发送完后要组装,要耗时,完成后才返回response,所以导致到了最有一片是 要等待一段时间,可能5秒到10分钟之间.机器性能越好等待时间越短.读了源码把设置做如下更改: 'chunkSize': 3*1024*1024, 'simultaneousUploads': 5, 'pr…