简单实现网络的音频播放

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

对于音视屏的开发,可以参照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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值