android MediaPlayer类可以得到播放档案位元速率不

android MediaPlayer类可以得到播放档案位元速率不,第1张

android MediaPlayer类可以得到播放档案位元速率不

MediaPlayer 能不能得到我不知道,但是android系统可以帮你解析到。

方法:在目录data/data/anroidcontentprovidersmedia 这个包里面有一个数据库,是关于各种多媒体的,然后里面有个表,有全部音乐档案(android能识别的格式)的相关属性,比如歌曲名称,歌手,歌曲路径,还有歌曲时间。当然也有位元速率的。你可以利用这个。可以用contentProvider去查询这张表,表的Url是:MediaStoreAudioMediaEXTERNAL_CONTENT_URI这个你可去网上查一下,先关资料多的是。

Cursor cursor = getContentResolver()query(

MediaStoreAudioMediaEXTERNAL_CONTENT_URI, null,

"duration > 60000", null, MediaStoreAudioMediaTITLE);

怎样可以得到免费的QQ播放器

是QQ空间的的播放器吗

在QQ商城搜寻栏输入BLUE,会有免费的

android mediaplayer能播放什么格式的档案

Android官方公布的文件显示MediaPlayer支援如下视讯格式:

Video H263 X X 3GPP (3gp) and MPEG-4 (mp4)

H264 AVC X 3GPP (3gp) and MPEG-4 (mp4)

MPEG-4 SP X 3GPP (3gp)

这些格式的视讯,基本上属于手机支援的视讯格式。如果想观看其他型别格式的视讯,比如flv等,需要下载暴风、迅雷等播放器。

android mediaplayer可以播放flash吗

Android22之后才支援安装Flash外挂并在WebView播放Flash视讯,初步想法是给Activity设定一个全屏的WebView,然后传入一个Flash地址。MediaPlayer类实质上是一个控制器,用于播放OSMF中所支援的任何媒体元素型别。

因此,如果为一个MediaPlayer物件提供ImageElement物件,则它可以生成一幅影象;如果为一个MediaPlayer物件传递VideoElement物件,则它可以渲染一个视讯。

下面列出了由MediaPlayer物件所呈现的每一个公共属性。

● audioPan:一个数字,表示媒体的pan属性。

● autoDynamicStreamSwitch:一个布林值,指示媒体是否自动在动态流之间切换。

● autoPlay:一个布林值,定义媒体是否在载入 *** 作成功完成后立即开始播放。

● autoRewind:一个布林值,定义媒体在回放完成后是否返回到回放起始位置。

● buffering:一个布林值,指示媒体当前是否正在缓冲。

● bufferLength:一个数字,指示当前媒体缓冲区中的内容长度,以秒为单位。

● bufferTime:一个数字,指示媒体缓冲区的适宜长度,以秒为单位。

● bytesLoaded:一个数字,返回媒体已经载入内容的位元组数。

● bytesLoadedUpdateInterval:一个数字,表示为bytesLoaded属性分派改变事件的间隔时间。

● bytesTotal:一个数字,表示媒体将要载入的总位元组数。

● canBuffer:一个布林值,指示媒体是否可以缓冲。

● canLoad:一个布林值,指示媒体是否可以载入。

● canPause:一个布林值,指示媒体是否可以暂停。

● canPlay:一个布林值,指示媒体是否可以播放。

● canSeek:一个布林值,指示媒体是否可以定址。

● currentDynamicStreamIndex:一个整数,代表当前正在渲染的动态媒体流的索引。

● currentTime:一个数字,返回播放头的当前时间,以秒为单位。

● currentTimeUpdateInterval:一个数字,定义当前时间分派变化事件之间的时间间隔,以毫秒为单位。

● displayObject:媒体的DisplayObject物件。

● drmEndDate:一个日期,指示回放视窗的结束日期。

● drmPeriod:一个数字,返回回放视窗的长度,以秒为单位。

● drmStartDate:一个日期,指示回放视窗的开始日期。

● drmState:一个字串,指示该媒体DRM的当前状态。

● duration:一个数字,表示媒体回放的持续时间,以秒为单位。

● dynamicStreamSwitching:一个布林值,指示当前是否正在进行动态媒体流切换。

● hasAudio:一个布林值,指示媒体是否包含音讯。

● hasDRM:一个布林值,指示媒体元素是否具有DRMTrait。

● isDVRRecording:一个布林值,指示媒体是否支援DVR以及当前是否正在录制。

● isDynamicStream:一个布林值,指示媒体是否由动态流组成。

● loop:一个布林值,指示媒体是否应该在回放完成之后再次播放。

● maxAllowedDynamicStreamIndex:一个整数,表示最大允许的动态流索引。

● media:一个MediaElement物件,定义媒体播放器当前正在控制的源媒体元素。

● mediaHeight:一个数字,定义媒体的高度,以画素为单位。

● mediaWidth:一个数字,定义媒体的宽度,以画素为单位。

● muted:一个布林值,指示媒体当前是否静音。

● numDynamicStreams:一个整数,表示动态流索引的总数。

● paused:一个布林值,指示媒体当前是否暂停。

● playing:一个布林值,指示当前媒体是否正在播放。

● seeking:一个布林值,指示媒体当前是否正在定址。

● state:一个字串,表示媒体的当前状态。

● temporal:一个布林值,指示媒体是否为暂时性的。

● volume:一个数字,表示媒体的音量。

MediaPlayer还提供了许多方便的函式用于控制媒体,包括

● authenticate(username:String = null, password:String = null):用于认证媒体。

● authenticateWithToken(token:Object):使用用做令牌的物件来认证媒体。

● canSeekTo(seconds:Number):用于确定媒体是否可定址到指定时间,以秒为单位。

● getBitrateForDynamicStreamIndex(index:int):用于获取指定动态流索引的位元速率,以千位元组为单位。

● pause():用于暂停媒体,如果它还没有暂停的话。

● play():用于播放媒体,如果当前它没有处于播放状态的话。

● seek(time:Number):用于跳转到媒体档案中的指定时间。

● s():用于停止回放并返回到媒体档案的开头。

● switchDynamicStreamIndex(index:int):用于切换到特定动态流索引。

对于OSMF专案,将需要汇入MediaPlayer;它可以在o fmedia包中找到。

import o fmediaMediaPlayer;

为了利用一个AudioElement物件,需要建立一个MediaPlayer物件,然后将AudioElement物件赋值给MediaPlayer物件的media属性。

如果将MediaPlayer升级到可以播放rm档案

永远不可以

你可以下暴风影音,这样就可以播放很多格式的档案了,而且占用资源少

暴风影音(Media Player Classic)是大家最常用的视讯播放软体之一,除了支援RealOne、Windows Media Player等多媒体格式外,暴风影音还支援QuickTime、DVDRip以及APE等格式。所以,她又有“万能播放器”的美称。可是,在使用过程中,我们经常会碰到这样或那样问题,其实通过简单的设定就可以解决这些问题。

技巧例项一:播放RM档案不正常

有时在播放RM、RMVB档案的时候出现不正常,比如有的时候不能播放,有时播放没有影象,有时无法通过暂停、停止按钮来控制播放。该问题可能是由于暴风影音所支援的Real格式模式的设定造成的,要解决该问题,可以尝试如下的 *** 作:执行暴风影音,依次单击“检视→选项”,在开启的选项视窗左侧选择“格式”。接着,在右侧的副档名列表中选择“Real媒体档案”,将实时媒体流协议控制代码设定改为“DirectShow”。最后,单击“确定”按钮即可。

友情提示:不过要使用暴风影音线上播放RM、RMVB流媒体档案,需要将“DirectShow”改回“RealMedia”。

技巧例项二:无法播放MP4档案

在播放采用QuickTime Pro制作的MP4档案时,暴风影音无法进行播放。这是由于预设情况下,标准的MP4档案采用了DirectShow渲染,而采用QuickTime Pro制作的MP4档案采用了QuickTime渲染。具体的设定方法如下:在“开始”选单中,执行“暴风影音综合设定”。接着,在开启的视窗左侧“任务”中选中“MPEG-4解码设定”,单击“下一步”按钮。然后,在开启的视窗中将“MP4渲染方式”改为“QuickTime”。最后,单击“确定”按钮即可。

友情提示:在下次观看标准MP4档案的时候,别忘了将MP4渲染方式改回“DirectShow”。

技巧例项三:无法载入字幕

预设情况下,在暴风影音中是无法给RMVB档案载入字幕的,要新增字幕必须进行相应的设定。比如播放本地的RMVB档案,可以开启选项视窗,在左侧选择“回放”下的“输出”。接着,在右侧的视窗中,在“DirectShow视讯”中选择“WMR7(无转换)”。

如果要播放线上视讯,同样是在该视窗中,将“RealMedia视讯”选项设定为“DirectX 7”,单击“确定”按钮即可。这样,回到暴风影音主视窗,依次单击“档案→载入字幕”,然后选择字幕档案,单击“开启”按钮即可完成字幕的载入。

技巧例项四:双语**问题

在使用暴风影音播放双语压制的影片的时候,很多人不知道如何去切换声道?其实, *** 作方法很简单:开启选项视窗,在左侧选择“滤镜”下的“音讯切换器”。接着,在右侧的视窗中选择“启用自定义声道对映”复选框,在下面我们可以看到有两个声道,可以按住Shift键单击其中一个声道,这样可以切换声道。最后,单击“确定”按钮即可。

津政发[1987]106号档案从哪里可以得到

你可以到当地劳动人事局查询,或者到当地档案局付费查询还有当地的一些老企业中的文书档案(长期卷)中都有存档的.

上传档案可以得到多少财富值

如果成功上传,每当被人下载一次就增加财富值

标价非0分文件被别人下载

+标价/被下载 1 次

每份文件可以通过文件被下载获得财富值奖励的上限为 200 分。

当单份文件下载量超过 500 时, 500-600 次下载之间,每被下载 1 次,可以获得:文件标价分 + 系统奖励 1 分

标价为0分文件被别人下载

1-200 次下载,每被下载 1 次,使用者获得:系统奖励 1 分。

当单份文件下载量超过 500 时,500-600 次下载之间,每被下载 1 次,获得:系统奖励 2 分。

PS:自己下载自己资源不扣分、不加分

你说的是VBScript脚本语言吧 FormatDateTime(Date,vbShortDate) 短日期格式:比如2005-11-30 FormatDateTime(Date,vbLongDate) 长日期格式:比如2005年11月30日 FormatDateTime(Time,vbShortTime) 短时间格式:比如19:02 FormatDateTime(Time,vbLongTime) 长时间格式:比如19:02:24

3)查看进程列表:adb shell "ps",同时也能获取到应用的UID,方式如下(不需root权限):

u0_a开头的都是Android的应用进程,Android的应用的UID是从10000开始,到19999结束,可以在Processjava中查看到(FIRST_APPLICATION_UID和LAST_APPLICATION_UID),u0_a后面的数字就是该应用的UID值减去FIRST_APPLICATION_UID所得的值,所以,对于截图这个应用进程,它是u0_a155,按前面的规制,它的UID就是155 + FIRST_APPLICATION_UID = 10155。

VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)

RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)

PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)

USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS

使用 adb shell "dumpsys meminfo -s <pakagename | pid>"命令,输出结果分以下4部分:

PS:在apk内调用运行获取其他app的内存数据则需要root权限

adb命令:adb shell dumpsys gfxinfo <package | pid>

正常情况下帧率应该在1667ms左右,1秒60帧,执行结果如下:

详细计算方法如下:

还有一个命令是: adb shell dumpsys SurfaceFlinger --latency LayerName

其中LayerName在各个不同系统中获取的命令是不一样的

在Android 6系统直接就是SurfaceView

在Android 7系统中可以通过 dumpsys window windows | grep mSurface | grep SurfaceView 然后通过数据截取到

在Android 8系统中可以通过 dumpsys SurfaceFlinger | grep android包名获取到

执行命令结果如下:

计算方法比较简单,一般打印出来的数据是129行(部分机型打印两次257行,但是第一部分是无效数据,取后半部分),取len-2的第一列数据为end_time,取len-128的第一列数据为start_time

fps = 127/((end_time - start_time) / 10000000)

至于为啥要取第一列数据,这里不做过多介绍,欢迎参看这两篇文章

老罗的文章SurfaceView原理

Android性能测试之fps获取

至于为啥要处于1000000,因为命令打印出来的是纳秒单位,要转为毫秒进行计算,127就是因为命令一次打印出来127帧的数据而已

有两种方法可以获取

1) adb shell "top -n 5 | grep <package | pid>" ,第三列就是实时监控的CPU占用率(-n 指定执行次数,不需root权限),这边top命令执行需要2到3s左右,一般可以采用busybox 的top命令执行,效率会快很多

2) adb shell "dumpsys cpuinfo | grep <package | pid>"

两种方法直接区别在于,top是持续监控状态,而dumpsys cpuinfo获取的实时CPU占用率数据

adb命令:adb shell "dumpsys batterystats < package | pid>" (Android 50后引入)

获取单个应用的耗电量信息,具体返回结果待研究

adb命令:adb shell "dumpsys battery"

出现信息解读:

AC powered:false 是否连接AC(电源)充电线

USB powered:true 是否连接USB(PC或笔记本USB插口)充电

Wireless powered:false 是否使用了无线电源

status: 1 电池状态,2为充电状态,其他为非充电状态

level:58 电量(%)

scale: 100 电量最大数值

voltage: 3977 当前电压(mV)

current now: -335232 当前电流(mA)

temperature:355 电池温度,单位为01摄氏度

adb 命令:adb shell "dumpsys< package | pid> | grep UID" [通过ps命令,获取app的UID(安装后唯一且固定)]

adb shell cat /proc/uid_stat/UID/tcp_rcv [cat为查看命令,读取tcp_rcv获取应用接收流量信息(设备重启后清零)]

adb shell cat /proc/uid_stat/UID/tcp_snd [cat为查看命令,读取tcp_snd获取应用发送流量信息(设备重启后清零)]

计算流量消耗步骤:

或者还有一种方式获取应用流量消耗:

首先判断类型:

cat /sys/class/thermal/thermal_zone/type

只有红框框出来的是有效的

cat /sys/class/thermal/thermal_zone/temp

获取CPU温度

dumpsys battery | grep temperature 单位01摄氏度

获取/proc/stat文件内容(无权限限制)

总的cpu时间片是 total = user+nice+system+idle+iowait+irq+softirq

忙碌时间为 notidle = user+nice+system +iowait+irq+softirq

cpu使用率计算方法为,先取开始的total值和忙碌时间notidle,隔一段时间片,再取一次计算total2,notidle2, cpuuse = (notidle2 – notidle) 100 / (total2 - total)%

PS:由于Android 8权限收紧,在Android 8系统手机内apk内读取文件内容为空,需要shell权限才可获取文件内容,下同

读/sys/devices/system/cpu/cpuX/cpufreq/scaling_cur_freq文件的值,X不定,看是几核手机,scaling_cur_freq是否存在也不一定,需要判断

至于为啥不取cpuinfo_cur_freq文件的值,原因是android 6,7系统获取的时候,这个文件shell没有读取权限,需要root权限

参考文章: >

在Android中大概又两种实现方式:一种是java中的Timer类,一种是Android中的Alerm机制。两者功能差不多。

Alerm具有cup运行锁,而Timer不具有cpu锁。

每种手机都具有自己的休眠策略,当长时间不是手机的情况下,cpu就会进入休眠状态。在这种情况下Timer将无法工作。而Alerm具有cpu锁,将会导致cpu无法休眠。

AlarmManager  manger=(AlarManger)getSystemService(ContextALARM_SERVICE);

mangerset(int flag,long time,PendingIntent  pendingIntent);

set方法参数说明:

第一个参数flag为工作类型:

AlarmManger ELAPSED_REALTIME:让定时时间从开机算起时间算起,但不会唤醒cpu。

AlarmMangerELAPSED_REALTIME_WAKEUP:同样表示让定时时间从开机算起,但会唤醒                                                                               CPU。

RTC:表示让定时任务从1970年1月1日算起,但是不唤醒cpu。

RTC_WAKEUP:表示让定时任务从1970年1月1日算起,但是唤醒cpu。

提示:SystemClockelapsedReadtime()---获取系统开机至今所经历的毫秒数;

           SystemcurrentTimeMillis()-------方法获取1970年1月1日至今天的毫秒数;

第二个参数: 延时的时间,单位毫秒;

第三个参数: PendingIntent指定具体动作;

注意:Android44版本后set方法触发不准确,有可能会延时一段时间执行(这不是Bug,是电池性能优化,系统会检测目前有多少个Alarm任务存在,然后将触发相近的几个任务一起执行)

如果要精确执行,将 setExact() 方法代替set()方法。

cancel ( PendingIntent   operation )

方法将会取消Intent匹配的任何闹钟。

setRepeating(int type,long triggerAtTime,long interval,PendingIntent operation);

参数说明:interval重复时间间隔;(44后触发不准时)

AlarmManger的其它功能:

设置系统时间和时区

添加权限:androidpermissionSET_TIME;

通过setTime(long millis)方法设置系统时间;

需要添加androidpermissionSET_TIME_ZONE权限。

通过setTimeZone(String tz)方法设置时区;

final Calendar mCalendar=CalendargetInstance();

mCalendarsetTimeInMillis(time);

取得系统日期: int mYear = mCalendarget(CalendarYEAR)

int mMonth = mCalendarget(CalendarMONTH)

int mDay = mCalendarget(CalendarDAY_OF_MONTH)

取得系统时间:int mHour= mCalendarget(CalendarHOUR_OF_DAY);

int mMinuts= mCalendarget(CalendarMINUTE)

(2)Android的文件有建议用Time代替Calendar。用Time对CPU的负荷会较小。在写Widget时特别重要。

Time mTime=new Time(); // or Time t=new Time("GMT+8"); 加上Time Zone资料。

mTimesetToNow(); // 取得系统时间。

int year = mTimeyear;

int month = mTimemonth;

int date = mTimemonthDay;

int hour =mTimehour; // 0-23

int minute = mTimeminute;

int second =mTimesecond;

唯一不足是取出时间只有24小时模式这个不叫屏幕的时间 应该叫系统时间

求采纳为满意回答。

android api中SystemClockuptimeMillis()是和gettickcount功能类似的函数:

1GetTickCount是函数。GetTickCount返回(retrieve)从 *** 作系统启动所经过(elapsed)的毫秒数,它的返回值是DWORD。

2SystemClockuptimeMillis()也是返回程序运行消耗的时间。

以上就是关于android MediaPlayer类可以得到播放档案位元速率不全部的内容,包括:android MediaPlayer类可以得到播放档案位元速率不、android 日期时间使用哪个 calender date time、Android性能测试(内存、cpu、fps、流量、GPU、电量)——adb篇等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9334345.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存