



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
android 多媒体相关代码概况编译后生成MediaProvider.apk。会在开机时扫描本机和sdcard上的媒体文件(图片、视频、音频),并在/data/data/viders.media/databases 目录下生成internal.db(/system/meida)和external-?.db(/sdcard)android 多媒体相关代码概况(JAVA SCOPE)1 ./packages/providers/MediaProvider/编译后生成MediaProvider.apk。会在开机时扫描本机和sdcard上的媒体文件(图片、视频、音频),并在/data/data/viders.media/databases 目录下生成internal.db(/system/meida)和external-?.db(/sdcard)两个数据库文件.此后,所有的多媒体信息都从这两个数据库中获取。2 ./packages/apps/Music编译后生成Music.apk,用来播放音频文件。播放列表及相关信息从external-?.db中获取。3 ./packages/apps/Camera/编译后生成Camera.apk,对应于Camera、Gallery、Camcorder三个应用。其中Gallery用来管理所有的视频和图片文件,具有播放、查看、删除等功能。4 ./frameworks/base/core/java/android/widget/VideoView.javaandroid 封装的一个视频播放控件,可一通过下面的方式使用:import android.widget.VideoView;.final VideoView view = (VideoView)findViewById(R.id.video_view);view.setVideoPath(/sdcard/test.mp4);view.start();.在XML描述中加入:5 ./frameworks/basecore/java/android/provider/MediaStore.javaandroid 提供的多媒体数据库, android 的所有多媒体数据信息都可以从这里提取。数据库的操作通过利用ContentResolver调用相关的接口实现。6 ./frameworks/base/media/java/android/media提供了android上 多媒体应用层的操作接口。主要说明:MediaPlayer.java:提供了视频、音频、数据流的播放控制等操作的接口。MediaRecorder.java:提供了视频、音频录制的接口。AudioManager.java: 提供了音频音量,以及播放模式(静音、震动等)的控制。RingtoneManager.java、Ringtone.java: 提供了提醒、闹钟、事件等声音的播放控制。MediaScanner.java: 提供了媒体扫描接口的支持。AudioTrack.java:SoundPool.java 播放android application的生音资源。AudioRecord.java: 为android applicatio 提供录音设置(sample、chanel等)的接口;简单的例子:播放一个文件:MediaPlayer mp = new MediaPlayer();mp.setDataSource(“/sdcard/test.mp3”);mp.prepare();mp.start();播放raw resouceMediaPlayer mp = MediaPlayer.create(context, R.raw.sound_file_1);mp.start();录音:MediaRecorder recorder = new MediaRecorder();recorder.setAudioSource(MediaRecorder.AudioSource.MIC);recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);recorder.setOutputFile(“/sdcard/test.amr”);recorder.prepare();recorder.start();.alarmclock 调用Media 的基本过程:.mMediaPlayer = new MediaPlayer();mMediaPlayer.setVolume(IN_CALL_VOLUME, IN_CALL_VOLUME);/ 检查是否是在通话中,若是,就换用较小的声音提示。if (tm.getCallState() != TelephonyManager.CALL_STATE_IDLE) Log.v(Using the in-call alarm);mMediaPlayer.setVolume(IN_CALL_VOLUME, IN_CALL_VOLUME);setDataSourceFromResource(context.getResources(),mMediaPlayer, R.raw.in_call_alarm);elsemMediaPlayer.setDataSource(context, Uri.parse(mAlert);mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);mMediaPlayer.setLooping(true);mMediaPlayer.prepare();mMediaPlayer.prepare();.android 多媒体相关代码概况二(FrameWork相关)帖子由 dycl3 于 2009-04-22 18:501、./frameworks/base/media/jniJAVA本地调用部分。编译后生成的目标是libmedia_jni.so.android_media_MediaPlayer.cpp: MediaPlayer 的JAVA本地调用部分。它定义了一个JNINativeMethod(JAVA本地调用方法)类型的数据gMethods,用来描述,接口的关联信息。android_media_MediaRecorder.cpp: 定义了录音的本地调用实现。android_media_AmrInputStream.cpp: amr 编码相关的本地调用实现。android_media_MediaScanner.cpp: 媒体扫描相关的本地调用实现。soundpool/android_media_SoundPool.cpp:定义了音频系统的本地调用实现。2、 ./frameworks/base/media/libmedia./frameworks/base/include/media/这里为多媒体的的底层库,编译生成libmedia.so.这个库处于android多媒体架构的核心位置,它对上层提供的接口主要有MediaPlayer、MediaRecorder、MediaScanner等类.android.meida.* 就是通过libmedia_jni.so 调用libmedia.so实现的接口实现的。还需要注意的是MediaPlayerInterface.h 这个头文件,他定义了MediaPlayer的底层接口。它主要定义了下面的类:MediaPlayerBase:MediaPlayerInterface的抽象基础类,里面包含了音频输出、视频输出、播放控制等的基本接口。MediaPlayerInterface、MediaPlayerHWInterface 继承自MediaPlayerBase针对不同输出作出的扩展。3、 ./frameworks/base/media/libmediaplayerservice这是多媒体的服务部分,编译生成libmediaplayerservice.so.MediaPlayerService.cpp 实现了一个名字为media.player的服务,MediaPlayer通过IPC同其实现通讯,以建立合适的播放器。在MediaPlayerService.cpp 会根据playerType的类型来决定创建不同的播放器。现有的播放器类型有PVPlayer、MidiFile、VorbiPlayer三个播放器类,他们都是有继承MediaPlayerInterface得到,具有相同的播放接口。我们这里可以通过继承MediaPlayerInterface的方法,实现增加新的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省巴中南江县联考2026届九年级化学第一学期期中学业质量监测模拟试题含解析
- 竞业禁止协议赔偿标准在高科技领域的实施
- 夫妻离婚协议中财产分割及抚养费支付合同
- 离婚协议书起草与婚姻登记机关备案服务
- 环保设备钢材仓储物流居间服务协议
- 2026届安徽无为尚文学校化学九上期末教学质量检测模拟试题含解析
- 离婚协议书范本及离婚后财产分割执行跟踪服务
- 直播带货主播与直播平台签约的独家直播合同范本
- 夫妻财产分割与子女抚养权调整补充协议
- 离婚协议模板定制与法律风险评估合同
- 光伏电站施工质量检查及验收规程
- 娱乐场所租赁合同范例
- 纪委谈话记录模板
- 2025年青岛旅游业发展预测及投资咨询报告发展趋势预测
- 智能计算系统:从深度学习到大模型 第2版课件 第七章-深度学习处理器架构
- 《儿科病历书写规范》课件
- 人教版(2024新版)八年级上册物理期末必刷多项选择题50题(含答案解析)
- 新解读《JTG E20-2011公路工程沥青及沥青混合料试验规程》
- 幼儿园大班数学《认识8》
- 贵州人民版劳动五年级上册全册教案教学设计
- 产品及工艺技术先进性说明
评论
0/150
提交评论