androidmediaplayerandroid 为什么我的MediaPlayer创建不了?

androidmediaplayer  时间:2021-06-11  阅读:()

如何单元测试android mediaplayer

主要涉及类:MediaPlayer (1) 当一个MediaPlayer对象被创建或者调用reset()方法之后,它处于空闲状态,调用release()方法后处于结束状态 1,一个MediaPlayer对象调用了reset()方法后,再调用其它方法可能会触发OnErrorListener.onError()事件,未调用reset()方法则不会触发 2,当Mediaplayer对象不再被使用时,最好调用release()方法对其进行释放,使其处于结束状态,此时它不能被使用 3,Mediaplayer对象被创建时(调用构造方法)处于空闲状态,若使用create()方法创建后则处于准备状态。

(2) 一般情况下,一些常用的播放控制操作可能因为音频、视频的格式不被支持或者质量较差以及流超时,也有可能由于开发者的疏忽使得Mediaplayer对象处于无效状态等而导致错误。

此时可通过注册setOnErrorListener方法实现监控。

如果发生了错误,Mediaplayer对象将处于多雾状态,可以使用reset()方法来回复错误。

(3) 任何Mediaplayer对象都必须先处于准备状态,然后才开始播放 (4) 要开始播放Mediaplayer对象都必须成功调用start()方法,可通过isPlaying()方法来检测是否正在播放 (5) 当Mediaplayer对象在播放时,可以进行暂停和停止操作,pause()方法暂停播放,()方法停止播放。

处于暂停暂停时可通过start()方法恢复播放,但是处于停止状态时则必须先调用prepare()方法使其处于准备状态,再调用start()方法。

主要方法: Mediaplayer:构造方法 create: 创建一个要播放的多媒体 getCurrentPosition:得到当前播放位置 getDuration: 得到文件的时间 prepare: 准备(同步) prepareAsync:准备(异步) seekTo: 指定播放的位置(以毫秒为单位) setAudioStreamType: 设置流媒体的类型 setDataSource: 设置数据来源 setDisplay: 设置用SurfaceHolder来显示多媒体 setOnBufferingUpdateListener: 网络流媒体的缓冲监听 setOnErrorListener: 设置错误信息监听 setOnVideoSizeChangedListener:视频尺寸监听 setScreenOnWhilePlaying: 设置是否使用SurfaceHolder来显示 setVolume: 设置音量 //获取sd卡上的音频文件 setDataSource(“/sdcard/test.mp3”); //装载资源中的音乐 MediaPlayer.create(Activity01.this,R.raw.test); //目前存在问题,不能循环解析出音频文件 原因:.android_secure文件夹受保护,无法获取里面的文件信息 播放视频 相关类:VideoView 方法说明: getBufferPercentage:得到缓冲的百分比 getCurrentPosition:得到当前播放位置 getDuration:得到视频文件的时间 resolveAdjustedSize:调整视频显示大小 setMediaController:设置播放控制器模式(播放进度条) setOnCompletionListener:当视频文件播放完时触发事件 setVideoPath:设置视频源路径 setVideoURI:设置视频源地址 录音 相关类:MediaRecorder 方法说明: MediaRecorder:构造方法 getMaxAmplitude:得到最大幅度 setAudioEncoder:设置音频编码 setAudioSource:设置音频源 setCamera:设置摄像机 setMaxDuration:设置最长录音时间 setMaxFileSize:设置文件的最大尺寸 setOutputFile:设置输出文件 setOutputFormat:设置输出文件格式 setPreviewDisplay:设置预览 setVideoEncoder:设置视频编码 setVideoFrameRate:设置视频帧的频率 setVideoSize:设置视频的宽度和高度(分辨率) setVideoSource:设置视频源 File类下的方法: public static File createTempFile(String prefix, String suffix, File directory) Creates an empty temporary file in the given directory using the given prefix and suffix as part of the file name. 系统会自动在prefix和suffix之间加上一些数字来构建完整的文件名 实现录音的一般步骤: 1, 实例化MediaRecorder mr,调用构造方法 2, 初始化mr:mr.setAudioSource(MIC)/setVideoSource(CAMERA) 3, 配置DataSource:设置输出文件格式/路径,编码器等 4, 准备录制:mr.prepare() 5, 开始录制:mr.start() 6, 停止录制:() 7, 释放资源:mr.release() 注:2,3不可调换顺序 添加许可: 相机设置 相关类:Camera,它是专门用来连接和断开相机服务的类 Camera的几个事件: Camera.AutoFocusCallback: 自动调焦功能 Camera.ErrorCallback: 错误信息捕捉 Camera.Parameters: 相机的属性参数 Camera.PictureCallback: 拍照、产生图片时触发 Camera.PreviewCallback: 相机预览设置 Camera.ShutterCallback: 快门设置 Camera.Size: 图片的尺寸 Camera类没有构造方法,可通过open()方法来打开相机设备 Camera类的方法介绍: autoFocus: 设置自动对焦 getParameters: 得到相机参数 open: 启动相机服务 release: 释放相机服务 setParameters: 设置参数 setPreviewDisplay:设置预览 startPreview: 开始预览 Preview: 停止预览 takePicture: 拍照 注:takePicture方法要实现3个回调函数作为它的三个参数:Camera.ShutterCallback(快门),和两个Camera.Picture.Callback(图像数据)。

需要许可 若要将图片存储至sd卡中,则需要sd卡读写许可 目前存在问题:只能拍照一次,不能重新回到预览界面 闹钟设置 相关类:AlarmManager,它是专门用来设定在某个指定的时间去完成指定的事件。

AlarmManager提供了访问系统警报的服务,只要在程序中设置了警报服务,AlarmManager就会通过onReceive()方法去执行这些事件,就算系统处于待机状态,同样不会影响运行。

可通过Context.getSystemService(ALARM_SERVICE)方法来获得该服务。

方法说明: cancel: 取消AlarmManager服务 set: 设置AlarmManager服务 setInexactRepeating:设置不精确周期 setRepeating:设置精确周期 setTimeZone:设置时区 注:需创建一个BroadcastReceiver的子类,并覆盖onReceive()方法 铃声设置 系统自带的铃声都放在/system/medio/audio/文件夹中 铃音类型: TYPE_RINGTONE(来电铃音),TYPE_ALARM,TYPE_NOTIFICATION 相关类:RingtoneManager 方法介绍: getActualDefaultRingtoneUri:取得指定类型的铃声 getCursor:返回所有可用铃声的游标 getDefaultType:得到指定URI默认的铃声类型 getRingtone getRingtonePosition:得到铃声位置 getRingtoneUri getValidRingtoneUri:得到一个可用铃声的URI isDefault:得到指定的Uri是否为默认的铃声 setActualDefaultRingtoneUri:设置默认的铃声 获取的Cursor共有4列,列名依次为:_id,title,”content://media/internal/audio/media”,title_key 以设置手机铃音为例: if (isFolder(strRingtongFolder)) {//如果不存在该文件夹则创建一个 // 打开系统铃声设置 Intent intent = new Intent( RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI, true); // 类型为来电ringtong intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE); // 设置显示的题目 intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设置来电的铃声"); // 当设置完成之后返回到当前的activity startActivityForResult(intent, RingtongButton); } 然后复写onActivityResult(int requestCode, int resultCode, Intent data)方法,resultCode就是点击设置dialog的按钮编号,需要判断是否点击了确认按钮 if (resultCode != RESULT_OK) { return; } try { // 得到我们选择的铃声 Uri pickedUri = data .getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); // 将我们选择的铃声选择成默认 if (pickedUri != null) { RingtoneManager.setActualDefaultRingtoneUri( Media_RingTongActivity.this, RingtoneManager.TYPE_RINGTONE, pickedUri); } } catch (Exception e) { e.printStackTrace(); }

android mediaplayer能播放什么格式的文件

直接百度就有啊 我直接复制的 Android官方公布的文档显示MediaPlayer支持如下视频格式: Video H.263 X X 3GPP (.3gp) and MPEG-4 (.mp4) H.264 AVC X 3GPP (.3gp) and MPEG-4 (.mp4) MPEG-4 SP X 3GPP (.3gp) 这些格式的视频,基本上属于手机支持的视频格式。

如果想观看其他类型格式的视频,比如flv等,需要下载暴风、迅雷等播放器。

android 为什么我的MediaPlayer创建不了?

System.out.println(map.get("" + musicIndex)); 你这句是要打印 map中的一个对应的value? System.out.println(“---------------------”); 这样打印试试咯?如果没有的话 ,那就说明你的线程卡死了?不过不至于 new一个MediaPlayer能把线程卡死。

DDMS还无报错的?

腾讯云轻量服务器两款低价年付套餐 2核4GB内存8M带宽 年74元

昨天,有在"阿里云秋季促销活动 轻量云服务器2G5M配置新购年60元"文章中记录到阿里云轻量服务器2GB内存、5M带宽一年60元的活动,当然这个也是国内机房的。我们很多人都清楚备案是需要接入的,如果我们在其他服务商的域名备案的,那是不能解析的。除非我们不是用来建站,而是用来云端的,是可以用的。这不看到其对手腾讯云也有推出两款轻量服务器活动。其中一款是4GB内存、8M带宽,这个比阿里云还要狠。这个真...

美国云服务器 2核4G限量 24元/月 香港云服务器 2核4G限量 24元/月 妮妮云

妮妮云的来历妮妮云是 789 陈总 张总 三方共同投资建立的网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑妮妮云的市场定位妮妮云主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。妮妮云的售后保证妮妮云退款 通过于合作商的友好协商,云服务器提供2天内全额退款到网站余额,超过2天...

IntoVPS:按小时计费KVM月费5美元起($0.0075/小时),6个机房可选

IntoVPS是成立于2004年的Hosterion SRL旗下于2009年推出的无管理型VPS主机品牌,商家提供基于OpenStack构建的VPS产品,支持小时计费是他的一大特色,VPS可选数据中心包括美国弗里蒙特、达拉斯、英国伦敦、荷兰和罗马尼亚等6个地区机房。商家VPS主机基于KVM架构,最低每小时0.0075美元起($5/月)。下面列出几款VPS主机配置信息。CPU:1core内存:2GB...

androidmediaplayer为你推荐
winhttp请问winhttp.dl是什么文件??iso20000认证为什么ISO20000认证能够风靡全球?它对整个企业的发展有什么好处?华为总裁女儿为啥姓孟任正非女儿为什么姓孟?网络电话永久免费打有没有永久免费打电话的网络电话啊?遗传算法实例求助fortran语言编写的混合遗传算法例子那位大哥大姐有?微信智能机器人微信群机器人是怎么实现的超级播放器那种电影网站就是那种不需要下载播放器可以直接看点心os什么是点心os?手机操作系统和手机区别么?一个是硬件一个是软件?听说炒的好火?embed函数datedif是什么函数哈?value又是什么函数哈web推送WEB订单管理系统
虚拟主机评测网 域名到期查询 重庆服务器托管 香港服务器99idc BWH 国外bt Hello图床 512m 12u机柜尺寸 合肥鹏博士 创梦 什么是刀片服务器 vip购优惠 国外免费asp空间 怎么建立邮箱 宏讯 论坛主机 带宽测试 海外加速 globalsign 更多