MediaPlayer播放应用中、内存卡中、网络中的音乐

first.播放应用内的音频文件

音频文件存放位置:raw目录(注意:文件名必须符合变量名规则)

创建:MediaPlayer  mediaPlayer = MediaPlayer.creat(context,R.raw。文件名);

2. 判断音频是否正在播放:mediaPlayer。。正在玩();

播放:mediaPlayer.start();

暂停:mediaPlayer .pause();

音乐时间:mediaPlayer .getDuration();

音乐当前播放位置:mediaPlayer .seekTo(int);

7.播放完成事件:网络 .setOnCompletionListsener();

停止:mediaPlayer.stop();

9.释放内存:mediaPlayer.release();


second.播放SD卡上的音频文件

音频文件存放的位置:内存卡

注意:需要添加读取内存卡的权限

    < uses-permission
 	android :name = “android.permission.READ_EXTERNAL_STORAGE” >
    </ uses-permission >

1.创建:M ediaPlayer  mediaPlayer = new M ediaPlayer();

2.设置播放的类型:mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

3.设置音源:mediaPlayer.setDataSource(context,Uri);

Uri uri = Uri.pase(“file:// mnt / sdcard /音频路径”);

4.准备:mediaPlayer.prepare();

5.开始播放:mediaPlayer.start();


third.播放Intenet上的音频文件

音频文件存放位置:网络

注意:需要添加联网的权限

    < uses-permission android :name = “android.permission.INTERNET” > </ uses-permission >
    1.创建:MediaPlayer mediaPlayer = new MediaPlayer(); 
    2.设置播放的类型:mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    3.设置音源:mediaPlayer.setDataSource(context,Uri);
              Uri uri = Uri.pase(“网络音乐文件路径”);     
    4.异步准备:mediaPlayer.prepareAsync();
     5.监听:mediaPlayer.setOnPreparedListener
     6.设置缓冲的监听器:mediaPlayer.setOnBufferingUpdateListsener




fourth.
xml文件:我们里点击ImageButton开始播放音乐
<?xml version = “1.0” encoding = “utf-8”?>
 < LinearLayout xmlns:android = “http://schemas.android.com/apk/res/android”
 	android :id = “@ + id / activity_media_player”
 	android :layout_width = “match_parent”
 	android :layout_height = “match_parent”
 	android :paddingBottom = “@ dimen / activity_vertical_margin”
 	android :paddingLeft = “@ dimen / activity_horizo​​ntal_margin”
 	android :paddingRight = “@ dimen / activity_horizo​​ntal_margin” 
	android :paddingTop = @dimen/ activity_vertical_margin“ >                            

 < SeekBar
 	android :layout_weight = “1”
 	android :layout_width = “wrap_content”
 	android :layout_height = “wrap_content”
 	android :id = “@ + id / media_player_seekBar” />                                
	
< ImageButton
	android :layout_width = “WRAP_CONTENT”
	android :layout_height = “WRAP_CONTENT”
	android :SRC = “@android:drawable/ ic_media_play” 
	android :onClick = “playpause” />                            
</ LinearLayout >

活动文件:三种获取方法都在这里,具体看注释
package com.zking.a24provider;

import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.SeekBar;

import java.io.IOException;

public class MediaPlayerActivity extends AppCompatActivity {

    private SeekBar media_player_seekBar ;
    private MediaPlayer mediaPlayer ;

    @Override
 protected void onCreate(Bundle savedInstanceState){
         super .onCreate(savedInstanceState);    
        setContentView(R.layout。activity_media_player);
        media_player_seekBar =(SeekBar)findViewById(R.id.media_player_seekBar);

        //给进度条设置拖动改变监听事件
 media_player_seekBar .setOnSeekBarChangeListener( new SeekBar.OnSeekBarChangeListener(){
 public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){                    

            }}

            @Override
 public void onStartTrackingTouch(SeekBar seekBar){            

            }}

            @Override
 public void onStopTrackingTouch(SeekBar seekBar){
                 //获取拖动结束后的位置
 int progress = media_player_seekBar .getProgress();
                //跳转到某个位置播放
 mediaPlayer .seekTo(progress);                                            
            }}
        });
    }}

    // first.播放应用内的音频文件
// //播放或暂停按钮点击事件
 // public void playpause(View view){
 // final ImageButton button_play =(ImageButton)view;
// if(mediaPlayer == null){
 // //创建mediaPlayer
 // mediaPlayer = MediaPlayer.create(this,R.raw.love);
// mediaPlayer.start();
// //把图标修改为暂停的图标
 // button_play.setImageResource(android.R.drawable.ic_media_pause);
// //获取音乐的总时长
 // int duration = mediaPlayer.getDuration();
// //设置进度条的最大值为音乐的总时长
 // media_player_seekBar.setMax(duration);
// new MyThread()。start();
//} else if(mediaPlayer.isPlaying()){
 // mediaPlayer.pause();
// //把图标修改为播放的图标
 // button_play.setImageResource(android.R.drawable.ic_media_play);
//} else {
 // mediaPlayer.start();
// //把图标修改为暂停的图标
 // button_play.setImageResource(android.R.drawable.ic_media_pause);
//}
 //}

   // second.播放SD卡上的音频文件
// //播放或暂停按钮点击事件
 // public void playpause(View view){
 // final ImageButton button_play =(ImageButton)view;
// if(mediaPlayer == null){
 // //创建mediaPlayer
 // mediaPlayer = new MediaPlayer();
// //设置类型
 // mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
// //设置音频
 // try {
 // mediaPlayer.setDataSource(this,Uri.parse(“file:// mnt / sdcard / i音乐/我的下载/ Roll The Dice-高姗.mp3”));
// //准备一下
 // mediaPlayer.prepare();
//} catch(IOException e){
 // e.printStackTrace();
//}
 //} else if(mediaPlayer.isPlaying()){
 // mediaPlayer.pause();
// //把图标修改为播放的图标
 // button_play.setImageResource(android.R.drawable.ic_media_play);
//} else {
 // mediaPlayer.start();
// //把图标修改为暂停的图标
 // button_play.setImageResource(android.R.drawable.ic_media_pause);
//}
 //}
 // third.播放Intenet上的音频文件
 //播放或暂停按钮点击事件
public void playpause(View view){  
	ImageButton button_play =(ImageButton)view;    
	if mediaPlayer == null){         
		//创建mediaPlayer 
		mediaPlayer = new MediaPlayer();        
		//设置类型
		mediaPlayer .setAudioStreamType( AudioManager。STREAM_MUSIC);        		//设置音频 
		try{             
			//播放网络音乐
			mediaPlayer .setDataSource(this,URI.Pares(“http://192.168.0.			105:8080/chimp.mp3”));            
			//异步准备
			mediaPlayer .prepareAsync(); }
	 	catch(IOException e){e.printStackTrace(); }         
			//监听:准备完成的监听
			mediaPlayer .setOnPreparedListener( newMediaPlayer.OnPrepared			Listener(){
		@public void onPrepared(MediaPlayer mp){
                 	mediaPlayer .start();                 
			//把图标修改为暂停的图标 button_play .setImageResource .R.drawable.ic_media_pause);                 
			//获取音乐的总时长
			INT times= MEDIAPLAYER .getDuration();                 			//设置进度条的最大值为音乐的总时长
			media_player_seekBar .setMax(times);
                       //开始线程 
			NEW MyThread的().start();}}); 
		} else if mediaPlayer .isPlaying()){        
			 mediaPlayer .pause();        
			//把图标修改为播放的图标 
			button_play.setImageResource( android.R.drawable。ic_media_play); 
		} else {         
			mediaPlayer .start();        
			//把图标修改为暂停的图标 
			button_play.setImageResource( android.R.drawable。ic_media_pause); }}
                                                                                                                                                    
class MyThread extends Thread {  
	@Override public void run(){
             super .run();            
		while media_player_seekBar.getProgress()<= media_player_seekBar .getMax()){                 
			//获取当前音乐播放的位置
			int currentPosition = mediaPlayer .getCurrentPosition();
        		//让进度条动起来
			media_player_seekBar .setProgress(currentPosition); 
		}
	}
    }
}                                        


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值