关闭

简单实现网络的音频播放

标签: mediaplayer网络
160人阅读 评论(0) 收藏 举报
分类:

注:这里只是根据自己做的一个应用中用到了音频播放,引用的代码,所以显示的代码不完整

对于音视屏的开发,可以参照Geogle官方API文档,下面是开发的流程图:


效果如下:


好了,下面贴代码


private void playMusic() {
		//播放前判断播放的状态
		if (mMediaPlayer == null) {
			mMediaPlayer = new MediaPlayer();
			mMediaPlayer.reset();
			mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
			String path = "http://192.168.33.44:8080/zbc.mp3";
			try {
				mMediaPlayer.setDataSource(path);
			} catch (IllegalArgumentException | SecurityException | IllegalStateException | IOException e) {
				
				e.printStackTrace();
			}
			
			mMediaPlayer.prepareAsync();
			PrePareListener prePareListener = new PrePareListener();
			mMediaPlayer.setOnPreparedListener(prePareListener);
			
		}
		
		if (isPlaying) {
			//正在播放时暂停播放
			mMediaPlayer.pause();
			isPlaying = false;
		}else {
			//处于未播放状态时
			//1.播放已结束或尚未开始
			mMediaPlayer.start();
			isPlaying = true;
			//2.处于暂停状态
		}
		
	}
	
	class CompletionListener implements OnCompletionListener{

		/**
		 * 音乐播放完毕的回调
		 */
		@Override
		public void onCompletion(MediaPlayer mp) {
			// 播放完成后,停止播放
			mMediaPlayer.stop();
			isPlaying = false;
			mIv_play.setImageResource(R.drawable.a_bofang);
			mMediaPlayer.release();
			mMediaPlayer = null;
		
		}
		
	}
	
	
	class PrePareListener implements OnPreparedListener{

		/**
		 * 开始准备播放音乐的回调
		 */
		@Override
		public void onPrepared(MediaPlayer mp) {
			mMediaPlayer.start();
			isPlaying = true;
			CompletionListener completListener = new CompletionListener();
			mMediaPlayer.setOnCompletionListener(completListener );
		}
		
	}

最后,最好在activity或Fragment对应的生命周期方法中,去调用stop()和start(),以便实现多种功能需求

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5381次
    • 积分:252
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:1篇
    • 译文:1篇
    • 评论:0条
    文章分类