王鹏鹏 2 лет назад
Родитель
Сommit
6bbe6f3f55

+ 3 - 3
baselib/src/main/java/com/yingyangfly/baselib/player/VoicePlayer.java

@@ -11,6 +11,7 @@ import androidx.annotation.RequiresApi;
 
 import com.yingyangfly.baselib.R;
 
+import java.io.FileDescriptor;
 import java.io.IOException;
 
 /**
@@ -72,13 +73,12 @@ public class VoicePlayer {
         }
     }
 
-    @RequiresApi(api = Build.VERSION_CODES.N)
-    public void play(AssetFileDescriptor assetFileDescriptor, final MediaPlayer.OnCompletionListener listener) {
+    public void playByLocation(AssetFileDescriptor assetFileDescriptor, final MediaPlayer.OnCompletionListener listener) {
         isPause = false;
         onCompletionListener = listener;
         try {
             if (assetFileDescriptor != null) {
-                mediaPlayer.setDataSource(assetFileDescriptor);
+                mediaPlayer.setDataSource(assetFileDescriptor.getFileDescriptor(), assetFileDescriptor.getStartOffset(), assetFileDescriptor.getLength());
                 mediaPlayer.prepareAsync();
                 mediaPlayer.setOnPreparedListener(mp -> {
                     mediaPlayer.start();

+ 0 - 0
game/src/main/res/raw/one.wav → game/src/main/assets/one.wav


+ 0 - 0
game/src/main/res/raw/three.wav → game/src/main/assets/three.wav


+ 0 - 0
game/src/main/res/raw/two.wav → game/src/main/assets/two.wav


+ 6 - 7
game/src/main/java/com/yingyangfly/game/dialog/CountdownDialog.kt

@@ -90,7 +90,6 @@ class CountdownDialog : DialogFragment() {
     /**
      * 初始化定时器
      */
-    @RequiresApi(Build.VERSION_CODES.N)
     private fun initTimer() {
         rxTimer = RxTimer()
         val m: Long = 1000
@@ -101,8 +100,8 @@ class CountdownDialog : DialogFragment() {
                 "1" -> {
                     imageCountdown!!.setBackgroundResource(R.mipmap.icon_one)
                     imageCountdown!!.post {
-                        val wavFile = resources.openRawResourceFd(R.raw.one)
-                        voicePlayer?.play(wavFile) {
+                        val wavFile = resources.assets.openFd("one.wav")
+                        voicePlayer?.playByLocation(wavFile) {
 
                         }
                     }
@@ -110,8 +109,8 @@ class CountdownDialog : DialogFragment() {
                 "2" -> {
                     imageCountdown!!.setBackgroundResource(R.mipmap.icon_two)
                     imageCountdown!!.post {
-                        val wavFile = resources.openRawResourceFd(R.raw.two)
-                        voicePlayer?.play(wavFile) {
+                        val wavFile = resources.assets.openFd("two.wav")
+                        voicePlayer?.playByLocation(wavFile) {
 
                         }
                     }
@@ -119,8 +118,8 @@ class CountdownDialog : DialogFragment() {
                 "3" -> {
                     imageCountdown!!.setBackgroundResource(R.mipmap.icon_three)
                     imageCountdown!!.post {
-                        val wavFile = resources.openRawResourceFd(R.raw.three)
-                        voicePlayer?.play(wavFile) {
+                        val wavFile = resources.assets.openFd("three.wav")
+                        voicePlayer?.playByLocation(wavFile) {
 
                         }
                     }