1.MainActivity.java import android.annotation.TargetApi; import android.app.Activity; import android.media.AudioManager; import android.media.MediaPlayer; import android.media.MediaRecorder; import android.os.Build; import android.os.Bundle; import a…
一.基本概念 本文主要介绍的是Android中很重要也最为复杂的媒体播放器(MediaPlayer)部分的架构.Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的. MediaPlayer在底层是基于OpenCore(PacketVideo)的库实现的,为了构建一个MediaPlayer程序,上层还包含了进程间通讯等内容,这种进程间通讯的基础是Android基本库中的Bin…
本文链接: Android MediaPlayer 播放音频 主要介绍使用MediaPlayer播放音频的方式.关于MediaPlayer的基础知识,比如状态,可以参考Android MediaPlayer 基础简介. 为了方便表达,定义变量名为mediaPlayer. MediaPlayer的使用方式 创建MediaPlayer 可以直接 new MediaPlayer,也可以用MediaPlayer提供的create方法创建. mediaPlayer = new MediaPlayer();…
使用MediaPlayer播放音频或者视频的最简单例子: JAVA代码部分: public class MediaPlayerStudy extends Activity { private Button bplay,bpause,bstop; private MediaPlayer mp = new MediaPlayer(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedIns…
关于OpenSL ES播放音频数据的一个奇怪的问题 Author:lihaiping1603@aliyun.com 最近用业余时间做了一个android平台的播放器sdk,其中视频用的opengl es,音频用的opensl es 做渲染,其中整个播放器在音视频同步的过程中,使用的视频同步到音频的方式,以音频作为主时钟. 今天在测试的过程中发现一个奇怪的问题,我音频数据的填充,使用了单独的音频线程,这其中的实现,主要参考ijk的实现代码和方式. 整个流程方式:我在音频播放的过程中设置的200ms…
在 Android 视频播放器 (一):使用VideoView播放视频 我们讲了一下如何使用VideoView播放视频,了解了基本的播放器的一些知识和内容.也知道VideoView内部封装的就是MediaPlayer,本文就介绍如何使用MediaPlayer播放视频. 一.简介 MediaPlayer是Android中的一个多媒体播放类,其提供的API能满足简单的大部分音视频的播放需求. 下面简单介绍一下MediaPlayer: MediaPlayer是使用Surface进行视频的展示的. Me…
一错误描述 二错误解决 解决方法一 解决方法二 一.错误描述 刚用MediaPlayer播放Music的时候,看到Log打印台总是会打印一条错误日志,MediaPlayer: Should have subtitle controller already set,虽然程序运行不会出问题,但是看起来红色的日志很显眼,因此决定修改这个bug.具体的错误日志如下所示: 01-04 17:46:21.752 9395-9395/com.netease.xtc.cloudmusic I/CloudMusi…
MediaPlayer播放不同来源的音频文件: 一.播放应用的资源文件 1.调用MediaPlayer的create(Context  context , int  resid)方法加载指定资源文件. 2.调用MediaPlayer的start().pause().stop()等方法控制播放即可. 注:音频资源文件一般放在Android应用的/res/raw目录下. 二.播放应用的原始资源文件 1.调用Context的getAssets()方法获取应用的AssetManager. 2.调用Ass…
MediaPlayer提供了如下方法来指定装载相应的音频文件: 1.void  setDataSource( String  path):指定装载path路径所代表的文件. 2.void  setDataSource(FileDescriptor  fd, long  offset , long  length ):指定装载fd所代表的文件中从offset开始.长度为length的文件内容. 3.void  setDataSource(FileDescriptor  fd ):指定装载发的所代表…
手机音频的输出有外放(Speaker).听筒(Telephone Receiver).有线耳机(WiredHeadset).蓝牙音箱(Bluetooth A2DP)等输出设备.在平时,电话免提.插拔耳机.连接断开蓝牙设备等操作系统都会自动切换Audio音频到相应的输出设备上.比如电话免提就是从听筒切换到外放扬声器,插入耳机就是从外放切换到耳机. 场景需求 Android系统自动切换的这些策略,并不能全部满足我们的产品需求,比如音乐App需要对听歌时拔出耳机的操作进行阻止(暂停播放),防止突然切换…