Browse Source

增加云教练评测选段播放流程

Pq 1 năm trước cách đây
mục cha
commit
19d2a2f7c7

+ 2 - 2
accompany/src/main/java/com/daya/orchestra/accompany/helper/AccompanyPlayHelper.java

@@ -519,7 +519,7 @@ public class AccompanyPlayHelper implements MediaPlayer.OnCompletionListener {
         }
     }
 
-    public void toPlay2(long startTime, boolean isMute) {
+    public void toPlay2(long startTime,int firstNoteTime, boolean isMute) {
         if (TextUtils.isEmpty(musicSrc)) {
             return;
         }
@@ -531,7 +531,7 @@ public class AccompanyPlayHelper implements MediaPlayer.OnCompletionListener {
         loopHandler.removeCallbacksAndMessages(null);
         loopHandler.postDelayed(mRunnable2, 10);
         getPlayer().stop();
-//        getPlayer().setPrepareSeekPosition(0);
+        getPlayer().setPrepareSeekPosition(firstNoteTime);
         getPlayer().play(isMute, musicSrc);
     }
 

+ 14 - 1
accompany/src/main/java/com/daya/orchestra/accompany/web/AccompanyFragment.java

@@ -736,7 +736,7 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
                                 long bufferDuration = (long) wavRecorder.getBufferDuration();
                                 long time = System.currentTimeMillis();
                                 long result = time - bufferDuration;
-                                mPlayHelper.toPlay2(result,isMuteMode(message));
+                                mPlayHelper.toPlay2(result,getFirstNoteTime(message),isMuteMode(message));
                             } else if ("1".equals(recorder)) {
 //                                onSendMessage(message.toString());
                             } else {
@@ -783,6 +783,19 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
         }
     }
 
+    private int getFirstNoteTime(JSONObject jsonObject){
+        if (jsonObject == null) {
+            return 0;
+        }
+        JSONObject contentJson = jsonObject.optJSONObject("content");
+        //获取选段位置
+        if (contentJson != null) {
+            int firstNoteTime = contentJson.optInt("firstNoteTime", 0);
+            return firstNoteTime;
+        }
+        return 0;
+    }
+
     private boolean isMuteMode(JSONObject jsonObject) {
         if (jsonObject == null) {
             return false;