(Android) MediaPlayer Example

 

package com.example.mediatest;

import java.io.IOException;

import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener, OnCompletionListener, OnPreparedListener {
 private Button playBtn;
 private Button stopBtn;
 private MediaPlayer mediaPlayer;
 private String startBtnStr;
 private String pauseBtnStr;
 private final String AUDIO_PATH = "//sdcard//recording-20131114002201.3gpp";
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  initUI();
  mediaPlayer = new MediaPlayer();
  mediaPlayer.setOnCompletionListener(this);
  mediaPlayer.setOnPreparedListener(this);
  try {
   mediaPlayer.setDataSource(AUDIO_PATH);
   mediaPlayer.prepare();
  } catch (IllegalArgumentException e) {
   e.printStackTrace();
  } catch (SecurityException e) {
   e.printStackTrace();
  } catch (IllegalStateException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 private void initUI() {
  startBtnStr = this.getResources().getString(R.string.play_playbtn);
  pauseBtnStr = this.getResources().getString(R.string.pause_playbtn);
  playBtn = (Button) findViewById(R.id.playbtn);
  playBtn.setOnClickListener(this);
  stopBtn = (Button) findViewById(R.id.stopbtn);
  stopBtn.setOnClickListener(this);
 }

 @Override
 public void onClick(View view) {
  int viewId = view.getId();
  switch (viewId) {
  case R.id.playbtn:
   play();
   break;
  case R.id.stopbtn:
   stop();
   break;
  }
 }

 private synchronized void stop() {
  if (mediaPlayer == null) {
   return;
  }
  mediaPlayer.stop();
  mediaPlayer.reset();
  try {
   mediaPlayer.setDataSource(AUDIO_PATH);
   mediaPlayer.prepare();
  } catch (IllegalStateException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
  playBtn.setText(startBtnStr);
 }

 private synchronized void play() {
  if (mediaPlayer == null) {
   return;
  }
  if (mediaPlayer.isPlaying()) {
   mediaPlayer.pause();
   playBtn.setText(startBtnStr);
  } else {
   mediaPlayer.start();
   playBtn.setText(pauseBtnStr);
  }
 }

 @Override
 protected void onPause() {
  releaseMediaPlayer();
  super.onPause();
 }

 private void releaseMediaPlayer() {
  if (mediaPlayer != null) {
   mediaPlayer.pause();
   mediaPlayer.stop();
   mediaPlayer.release();
  }
 }

 @Override
 protected void onDestroy() {
  mediaPlayer = null;
  super.onDestroy();
 }

 @Override
 public void onCompletion(MediaPlayer mediaPlayer) {
  playBtn.setText(startBtnStr);
 }

 @Override
 public void onPrepared(MediaPlayer mediaPlayer) {
  playBtn.setEnabled(true);
  stopBtn.setEnabled(true); 
 }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 Android MediaPlayer 播放器代码示例: ```java public class MainActivity extends AppCompatActivity implements MediaPlayer.OnPreparedListener, MediaPlayer.OnCompletionListener { private MediaPlayer mediaPlayer; private Button playButton, pauseButton, stopButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); playButton = findViewById(R.id.button_play); pauseButton = findViewById(R.id.button_pause); stopButton = findViewById(R.id.button_stop); mediaPlayer = new MediaPlayer(); mediaPlayer.setOnPreparedListener(this); mediaPlayer.setOnCompletionListener(this); playButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { mediaPlayer.setDataSource("https://example.com/audio.mp3"); mediaPlayer.prepareAsync(); } catch (IOException e) { e.printStackTrace(); } } }); pauseButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mediaPlayer.pause(); } }); stopButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mediaPlayer.stop(); } }); } @Override public void onPrepared(MediaPlayer mp) { mp.start(); } @Override public void onCompletion(MediaPlayer mp) { mp.stop(); } @Override protected void onDestroy() { super.onDestroy(); mediaPlayer.release(); mediaPlayer = null; } } ``` 这个示例中,我们创建了一个包含三个按钮的简单 UI,分别用于播放、暂停和停止音频。当用户点击“播放”按钮时,我们使用 MediaPlayer 的 `setDataSource()` 方法设置音频文件的 URL,然后调用 `prepareAsync()` 方法异步准备播放器。在准备完成后,MediaPlayer 会触发 `onPrepared()` 方法,我们在这里调用 `start()` 方法开始播放音频。当音频播放完毕时,MediaPlayer 会触发 `onCompletion()` 方法,我们在这里调用 `stop()` 方法停止播放器。在 Activity 销毁时,我们需要释放 MediaPlayer 对象以释放资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值