android播放mp3方法,Android之MediaPlayer播放音频与视频
本节带来的是Android多媒体中的——MediaPlayer,我们可以通过这个API来播放音频和视频 该类是Androd多媒体框架中的一个重要组件,通过该类,我们可以以最小的步骤来获取,解码 和播放音视频。它支持三种不同的媒体来源:
本地资源
内部的URI,比如你可以通过ContentResolver来获取
外部URL(流) 对于Android所支持的的媒体格式列表
使用MediaPlayer播放音频:
1)获得MediaPlayer实例:
MediaPlayer mp = new MediaPlayer();
MediaPlayer mp = MediaPlayer.create(this, R.raw.test); //无需再调用setDataSource
另外create还有这样的形式: create(Context context, Uri uri, SurfaceHolder holder) 通过Uri和指定 SurfaceHolder 【抽象类】 创建一个多媒体播放器
2)设置播放文件:
//①raw下的资源:
MediaPlayer.create(this, R.raw.test);
//②本地文件路径:
mp.setDataSource("/sdcard/test.mp3");
//③网络URL文件:
mp.setDataSource("http://www.xxx.com/music/test.mp3");
另外setDataSource()方法有多个,里面有这样一个类型的参数:FileDescriptor,在使用这个 API的时候,需要把文件放到res文件夹平级的assets文件夹里,然后使用下述代码设置DataSource:
AssetFileDescriptor fileDescriptor = getAssets().openFd("rain.mp3");
m_mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(),fileDescriptor.getStartOffset(), fileDescriptor.getLength());
3)其他方法
Paste_Image.png
实例
//[1]初始化mediaplayer
MediaPlayer mediaPlayer = new MediaPlayer();
//[2]设置要播放的资源位置 path 可以是网络 路径 也可是本地路径
try {
mediaPlayer.setDataSource("/mnt/sdcard/xpg.mp3");
//[3]准备播放
mediaPlayer.prepare();
//[4]开始播放
mediaPlayer.start();
} catch (Exception e) {
e.printStackTrace();
}
本地Uri:
Uri myUri = ....; // initialize Uri here
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(getApplicationContext(), myUri);
mediaPlayer.prepare();
mediaPlayer.start();
网络音频
String url = "http://........"; // your URL here
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(url);
mediaPlayer.prepare(); // might take long! (for buffering, etc)
mediaPlayer.start();
使用MediaPlayer播放视频:
MediaPlayer主要用于播放音频,没有提供图像输出界面,所以我们需要借助其他的 组件来显示MediaPlayer播放的图像输出,我们可以使用用SurfaceView 来显示,下面我们使用SurfaceView来写个视频播放的例子:
//[0]找到控件用来显示播放视频的内容
final SurfaceView sfv = (SurfaceView) findViewById(R.id.sfv);
//获取holder 对象 用来维护视频播放的内容
SurfaceHolder holder = sfv.getHolder();
//[0.1]添加holder 生命周期 方法
holder.addCallback(new Callback() {
//当surface view 销毁
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
System.out.println("surfaceDestroyed");
//停止播放视频
if (mediaPlayer!=null && mediaPlayer.isPlaying()) {
//获取到当前播放视频的位置
currentPosition = mediaPlayer.getCurrentPosition();
mediaPlayer.stop();
}
}
//这个方法执行了 说明sufaceView准备好了
@Override
public void surfaceCreated(SurfaceHolder holder) {
//[1]初始化mediaplayer
System.out.println("surfaceCreated");
mediaPlayer = new MediaPlayer();
//[2]设置要播放的资源位置 path 可以是网络 路径 也可是本地路径
try {
mediaPlayer.setDataSource("http://192.168.11.86:8080/cc.MP4");
//[3]准备播放
mediaPlayer.prepareAsync();
//[3.0]设置显示给sfv sufraceholder 是用来维护视频播放的内容
mediaPlayer.setDisplay(holder);
//[3.1]设置一个准备完成的监听
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
//[4]开始播放
mediaPlayer.start();
//[5]继续上次的位置继续播放
mediaPlayer.seekTo(currentPosition);
}
});
} catch (Exception e) {
e.printStackTrace();}}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
});
使用VideoView播放视频
// 插件vitamio框架检查是否可用
if (!LibsChecker.checkVitamioLibs(this)) {
return;
}
final VideoView vv = (VideoView) findViewById(R.id.vv);
vv.setVideoPath("http://192.168.11.86:8080/aa.avi");
vv.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
vv.start();
}
});
//设置video的控制器
vv.setMediaController(new MediaController(this));
android播放mp3方法,Android之MediaPlayer播放音频与视频相关推荐
- android播放mp3方法,Android MediaPlayer 播放音频的方式
主要介绍使用MediaPlayer播放音频的方式.关于MediaPlayer的基础知识,比如状态,可以参考Android MediaPlayer基础简介. 为了方便表达,定义变量名为mediaPlay ...
- android 网络mp3格式,Android-使用MediaPlayer播放网络音频并且缓存
需求 接口中返回一个List,其中部分对象有音频文件的url.对有url的item视图中添加一个播放按钮.点击按钮播放音频,再次点击暂停或停止.点击其他item播放新的音频.点击item进入二级页面, ...
- Android实现mp3分析,Android编程实现播放MP3功能示例
本文实例讲述了Android编程实现播放MP3功能.分享给大家供大家参考,具体如下: 在android中播放mp3非常简单,也是项目中经常使用的,比如说要做项目的背景音乐,应用中某些功能的提示音等的. ...
- Android 视频播放器 (二):使用MediaPlayer播放视频
在 Android 视频播放器 (一):使用VideoView播放视频 我们讲了一下如何使用VideoView播放视频,了解了基本的播放器的一些知识和内容.也知道VideoView内部封装的就是Med ...
- android播放mp3功能,Android编程实现播放MP3功能示例
本文实例讲述了android编程实现播放mp3功能.分享给大家供大家参考,具体如下: 在android中播放mp3非常简单,也是项目中经常使用的,比如说要做项目的背景音乐,应用中某些功能的提示音等的. ...
- Android提高第二十一篇之MediaPlayer播放网络视频
本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 上次讲解了MediaPlayer播放网络音频,介绍了MediaPlayer关于网络音频的缓冲和进度条控制的方法 ...
- android播放mp3功能,Android Studio实现简单音乐播放功能的示例代码
项目要求 基于Broadcast,BroadcastReceiver等与广播相关的知识实现简单的音乐播放功能,包括音乐的播放.暂停.切换.进度选择.音量调整. 设计效果 (进度条时间刷新功能还没有实现 ...
- android 播放mp3 倒计时,Android实战 - 音心播放器 (MusicActivity - 倒计时 ,进度条实现)...
1.背景 还是音乐播放界面,实现倒计时和进度条功能,基本实现过程: 当打开MusicActivity 的时候,MusicService会发送广播给MusicActivity ,后开始当前播放的时间进度 ...
- 【我的Android进阶之旅】解决MediaPlayer播放音乐的时候报错: Should have subtitle controller already set
文章目录 一.错误描述 二.错误解决 解决方法一 解决方法二 一.错误描述 刚用MediaPlayer播放Music的时候,看到Log打印台总是会打印一条错误日志,MediaPlayer: Shoul ...
最新文章
- what???现在的研究生和导师普遍都没有真正理解科研的本质
- Windows 2003 标准版_企业版_SP1_SP2_R2的区别
- 登录form php一个页面跳转页面,form表单页面跳转方式提交练习
- x86架构和arm架构_苹果Mac弃用英特尔芯片成真,ARM架构CPU真比X86香?
- Spark学习之Spark Streaming(9)
- 黑苹果xxx.efi格式文件详解
- 基于Multisim的MC1496调幅电路的仿真
- 进入浏览器下载文件,状态栏不显示下载图标
- html怎样改成png格式,如何将jpg图片转换成png格式 又怎样把png转换成jpg
- 2022茶艺师(中级)考试题及模拟考试
- 5款实用报表工具分析,报表工具这样选!
- 杭州天目山路招PHP,杭州地铁3号线汽车西站站开始主体施工 天目山路部分路面要开挖了...
- Ubuntu下安装Genymotion安卓模拟器
- 1.3 PyCharm下载
- 红米手机TWRP读不了刷机包成功解决记录
- 小鹤双拼 - 微软拼音自动配置双拼方案
- 计算机改成音乐键位,让键盘变成你想要的样子:改键利器 Karabiner-Elements
- “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛
- 计算机网络体系结构 - 应用层
- 个人云服务器系统设计,个人云服务器系统设计
热门文章
- seata分布式事务框架原理
- Dubbo 优雅停机
- android入门程序源代码,安卓程序开发入门
- 给定的 columnmapping 与源或目标中的任意列均不匹配_闻歌研究 | 图文自动匹配任务研究调研...
- Android项目工程中的Gradle、compileSdkVersion、buildToolsVersion
- 万字长文搞定C语言指针
- android鼠标滚轮事件坐标,android 处理鼠标滚轮事件 【转】
- python基础语法手册_说一说python中的几个基础语法
- 路由器(结构、分组转发流程、路由选择协议(RIP、OSPF、BGP))
- 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))