实现音乐播放的一些方式

音乐资源的名字:不能有中文,不能有空格,不能有特殊符号,尽量不要全是数字 

音乐播放器:MediaPlayer创建的方式一:

一般如果需要添加一个背景音乐,,可以使用这种方式

Java代码:

public class MainActivity extends Activity {
	private MediaPlayer player;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 1.创建音乐播放器的对象,,,,,通过.create方式去创建
		/*
		 * 1.这种创建方式,在音乐停止了以后,再去开始播放,会发生 (-38,0)这个异常------资源问题异常
		 * 2.当前应用(页面)退出以后,,音乐应该停止
		 */
		// 加载音乐资源的方式1:raw目录下的音乐资源
		player = MediaPlayer.create(MainActivity.this, R.raw.onemorenight);
	}
	/*
	 * 播放
	 */
	public void play(View view) {
//		player.reset();
		// 开始播放
		player.start();
	}
	/*
	 * 暂停
	 */
	public void pause(View view) {
		if (player.isPlaying()&&player!=null) {
			player.pause();
		}
	}
	/*
	 * 停止
	 */
	public void stop(View view) {
		if (player!=null) {
			player.stop();
		}
	}
	/**
	 * 页面销毁,,音乐也要停止
	 */
	@Override
	protected void onDestroy() {
		if (player!=null) {
			//销毁音乐资源
			player.release();
			//垃圾回收
			player=null;
		}
		super.onDestroy();
	}
}

创建音乐播放器的方式二: new MediaPlayer 的方式 

Java代码:

public class MainActivity extends Activity {

	private MediaPlayer player;
	private boolean flag=false;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 1.创建音乐播放器的对象
		player = new MediaPlayer();
	}
	/*
	 * 开始播放
	 */
	public void play(View view) {
		//进行判断,,状态值
		if (flag) {//处于暂停状态
			player.start();//继续播放
			flag=false;
		} else {
			try {
			//重置资源 *****
			player.reset();
			// 2.加载音乐资源-----path:音乐资源的路径
			//加载音乐资源2:加载sd卡下的音乐资源
//			player.setDataSource(Environment.getExternalStorageDirectory()+"/CheapThrills.mp3");
			//加载音乐资源3:加载assets目录下的音乐资源
			AssetFileDescriptor openFd = getAssets().openFd("sugar.mp3");
			player.setDataSource(openFd.getFileDescriptor(), openFd.getStartOffset(), openFd.getLength());
			//3.准备
//			player.prepare();//同步的准备
			player.prepareAsync();//异步的准备
			//4.播放
			//player.start();//如果当前音乐没播放,,直接播放,,,如果处于暂停状态,继续播放
			//准备完成的监听
			player.setOnPreparedListener(new OnPreparedListener() {
				@Override
				public void onPrepared(MediaPlayer mp) {
					player.start();
				}
			});
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
	/*
	 * 暂停
	 */
	public void pause(View view) {
		if (player!=null&&player.isPlaying()) {
			player.pause();
			//更改状态值
			flag=true;
		}
	}
	/*
	 * 停止
	 */
	public void stop(View view) {
		if (player!=null) {
			player.stop();
		}
	}
	/**
	 * 释放资源
	 */
	@Override
	protected void onDestroy() {
		if (player!=null) {
			player.release();//释放音乐资源
			player=null;
		}
		super.onDestroy();
	}
}

猜你喜欢

转载自blog.csdn.net/qq_41673194/article/details/80392700