MediaPlayerUtils.java 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package com.sikey.skvideo.manager;
  2. import android.content.Context;
  3. import android.media.MediaPlayer;
  4. import android.net.Uri;
  5. import java.io.IOException;
  6. public class MediaPlayerUtils {
  7. private MediaPlayer mediaPlayer;
  8. public void playSound(Context context, int resourceId, boolean isLoop) {
  9. stopSound();
  10. // 创建MediaPlayer对象
  11. mediaPlayer = new MediaPlayer();
  12. try {
  13. Uri path = Uri.parse("android.resource://" + context.getPackageName() + "/" + resourceId);
  14. mediaPlayer.reset();
  15. // 设置音频文件的数据源
  16. mediaPlayer.setDataSource(context, path);
  17. // 设置循环播放
  18. mediaPlayer.setLooping(isLoop);
  19. mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
  20. @Override
  21. public void onCompletion(MediaPlayer mp) {
  22. if (!isLoop) {
  23. stopSound();
  24. }
  25. }
  26. });
  27. // 准备播放
  28. mediaPlayer.prepare();
  29. // 开始播放
  30. mediaPlayer.start();
  31. } catch (IOException e) {
  32. e.printStackTrace();
  33. }
  34. }
  35. public void stopSound() {
  36. // 释放资源
  37. if (mediaPlayer!= null) {
  38. mediaPlayer.release();
  39. mediaPlayer = null;
  40. }
  41. }
  42. }