android多媒体音乐(MediaPlayer)播放器制作代码
作者:Strange_yy 发布时间:2022-01-06 01:13:20
标签:android,MediaPlayer,音乐播放器
本文实例为大家分享了android多媒体音乐播放器的具体实现代码,供大家参考,具体内容如下
首先,在AndroidManifest.xml中配置权限
<!-- 读取手机中的音乐 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
注释:Android多媒体音乐的几种来源
1.在andriod的应用中
MediaPlayer.create(this, R.raw.roar);
//mnt/sdcard/手机内存卡
2.放在自己的sd卡中(内存卡)
mediaPlayer.setDataSource(this, Uri.parse("file://mnt/sdcard/1/123.mp3"));
3.在网络上(要知道哪个路径)
mediaPlayer.setDataSource(this, Uri.parse("http://192.168.43.202:8080/sister.mp3"));
接下来,在Java代码中写
在onCreate方法中写全局变量:
private MediaPlayer mediaPlayer;
private SeekBar seekBar;
private SurfaceView sv_main_suffce;
public void onplay(View view) throws IOException {
imageButton = (ImageButton) view;
if (mediaPlayer==null){
//播放应用的音频文件
// mediaPlayer = MediaPlayer.create(this, R.raw.roar);
//播放内存卡中的音频文件
mediaPlayer=new MediaPlayer();
//音频流的类型
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
//设置音频的来源
// mediaPlayer.setDataSource(this, Uri.parse("file://mnt/sdcard/1/roar.mp3"));
// mediaPlayer.prepare();//准备一下
//播放网络音乐
mediaPlayer.setDataSource(this, Uri.parse("http://192.168.43.202:8080/crickets.mp3"));
//一步准备
mediaPlayer.prepareAsync();
//设置准备完的监听
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
//开始播放
mediaPlayer.start();
//点击播放改变图标
imageButton.setImageResource(android.R.drawable.ic_media_pause);
//获取音乐的播放最大时间
int durtion=mediaPlayer.getDuration();
//设置进度条的最大值为音乐的播放最大时间
seekBar.setMax(durtion);
new Mythred().start();
}
});
//给进度条设置一个事件
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
//获取拖动的进度
int progress=seekBar.getProgress();
//到那个位置播放
mediaPlayer.seekTo(progress);
}
});
}
else if (mediaPlayer.isPlaying()){
mediaPlayer.pause();
imageButton.setImageResource(android.R.drawable.ic_media_play);
}
else {
mediaPlayer.start();
imageButton.setImageResource(android.R.drawable.ic_media_pause);
}
}
写了一个子线程 extends Thread(seekbar进度条):
class Mythrod extends Thread{
@Override
public void run() {
super.run();
while (seekBar.getProgress()<=seekBar.getMax()){
//获取音乐的当前播放位置
int currentPosition=mediaPlayer.getCurrentPosition();
seekBar.setProgress(currentPosition);
}
}
}
另建一个类SoundActivity,通过soundPool例化音频池可以实现多种声音一起播放
//实例化音频池
soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC,0);
soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int i, int status) {
//播放
soundPool.play(i,1,1,1,-1,1);
}
});
//写声音按钮的方法
public void playKFC(View view){
//音频池的路径
soundPool.load(this,R.raw.rooster,1);
}
public void playTwo(View view){
soundPool.load(this,R.raw.chimp,1);
}
public void playThree(View view){
soundPool.load(this,R.raw.crickets,1);
}
public void playFour(View view){
soundPool.load(this,R.raw.roar,1);
}
public void playDog(View view){
soundPool.load(this,R.raw.dogbark,1);
}
//销毁音频池soundPool
@Override
protected void onDestroy() {
super.onDestroy();
if(soundPool!=null){
//释放内存
soundPool.release();
soundPool=null;
}
}


猜你喜欢
- Java是一种面向对象的编程语言,由Sun Microsystems公司在1995年的时候正式发布。直到今天,Java都一直是最受欢迎的编程
- 一、 JPA概述JPA的全称是Java Persistence API, 即Java 持久化API,是SUN公司推出的一套基于ORM的规范,
- 无论是Android开发或者是其他移动平台的开发,ListView肯定是一个大咖,那么对ListView的操作肯定是不会少的,上一篇博客介绍
- 这篇文章主要介绍了JavaMail与Spring整合过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 支付宝上有一个咻一咻的功能,就是点击图片后四周有水波纹的这种效果,今天也写一个类似的功能。效果如下所示:思路:就是几个圆的半径不断在变大,这
- 本文实例为大家分享了winform实现五子棋游戏的具体代码,供大家参考,具体内容如下利用数组,根据新旧数组值的不同,获取那个点是什么棋子;说
- 一、前导知识串行口是计算机的标准接口,现在的PC机(个人电脑)一般至少有两个串行口COM1和COM2。串行口应用广泛,在数据通信、计算机网络
- 本文实例为大家分享了ExpandableListView二级分栏效果的具体代码,供大家参考,具体内容如下对ExpandableListVie
- 本文实例讲述了Android编程使WebView支持HTML5 Video全屏播放的解决方法。分享给大家供大家参考,具体如下:1)需要在An
- //计算耗时任务所需的秒数public int GetTimeSpan(DateTime dtStart, DateTime dtEnd){
- 一、tomcat内存设置问题 收藏 在使用Java程序从数据库中查询大量的数据或是应用服务器(如tomcat、jboss,weblogic)
- 我们都知道Android Studio用起来很棒,其中布局预览更棒。我们在调UI的时候基本是需要实时预览来看效果的,在Android Stu
- 实现效果:列出某个目录下的特定后缀名文件(如,列出D盘根目录下txt后缀的文件)import java.io.File;import jav
- 使用代码特别注意 :拼接条件时,所使用到的条件strID,strBir必须是独立的var predicate = PredicateBuil
- FeignClient发送post请求异常这个问题其实很基础。但是却难倒了我。记录一下在发送post请求的时候要指定消息格式正确的写法是这样
- 这篇文章主要介绍了Java二分查找算法实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- 1. 数据构造索引2个文档到 hotel 索引中:PUT /hotel/_doc/1{ "title": &
- 1.文件页面编码导致的乱码。每一个文件(java,js,jsp,html等)都有其本身的编码格式,文件中的代码在一种编码中显示正常,在另外一
- 1:利用反射实现public static T DeepCopy<T>(T obj){ //如果是字符串或值类型则直
- 亲爱的读者,在这篇文章中,我提供了一些c#编程的最佳实践。你是否在用户输入验证中使用异常处理机制?如果是,那么你就是那个把你的项目执行速度降