Skip to content

Commit 856e965

Browse files
committed
完善手势传递机制,完善播放日志点位
1 parent c22b4da commit 856e965

File tree

7 files changed

+47
-11
lines changed

7 files changed

+47
-11
lines changed

app/src/main/java/com/kk/taurus/avplayer/cover/GestureCover.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,14 @@
2424
import com.kk.taurus.playerbase.receiver.IReceiverGroup;
2525
import com.kk.taurus.playerbase.receiver.PlayerStateGetter;
2626
import com.kk.taurus.playerbase.touch.OnTouchGestureListener;
27+
import com.kk.taurus.playerbase.touch.TouchEventIndicator;
2728
import com.kk.taurus.playerbase.utils.TimeUtil;
2829

2930
import butterknife.BindView;
3031
import butterknife.ButterKnife;
3132
import butterknife.Unbinder;
3233

33-
public class GestureCover extends BaseCover implements OnTouchGestureListener {
34+
public class GestureCover extends BaseCover implements OnTouchGestureListener, TouchEventIndicator {
3435

3536
@BindView(R.id.cover_player_gesture_operation_volume_box)
3637
View mVolumeBox;
@@ -413,4 +414,10 @@ public void onEndGesture() {
413414
}
414415
mHorizontalSlide = false;
415416
}
417+
418+
@Override
419+
public boolean disallowReceiveTouchEvent() {
420+
return getGroupValue().getBoolean(DataInter.Key.KEY_ERROR_SHOW, false);
421+
}
422+
416423
}

exoplayer/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ dependencies {
3434
api "com.google.android.exoplayer:exoplayer-dash:$exoplayersdkVersion"
3535
api "com.google.android.exoplayer:exoplayer-hls:$exoplayersdkVersion"
3636
api "com.google.android.exoplayer:exoplayer-smoothstreaming:$exoplayersdkVersion"
37-
api "com.kk.taurus.playerbase:playerbase:$playerbaseVersion"
38-
// api project(':playerbase')
37+
// api "com.kk.taurus.playerbase:playerbase:$playerbaseVersion"
38+
api project(':playerbase')
3939
}

exoplayer/src/main/java/com/kk/taurus/exoplayer/ExoMediaPlayer.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,7 @@ public void stop() {
330330
isBuffering = false;
331331
updateStatus(IPlayer.STATE_STOPPED);
332332
mInternalPlayer.stop();
333+
submitPlayerEvent(OnPlayerEventListener.PLAYER_EVENT_ON_STOP, null);
333334
}
334335

335336
@Override
@@ -345,6 +346,7 @@ public void destroy() {
345346
mInternalPlayer.removeListener(mEventListener);
346347
mInternalPlayer.removeVideoListener(mVideoListener);
347348
mInternalPlayer.release();
349+
submitPlayerEvent(OnPlayerEventListener.PLAYER_EVENT_ON_DESTROY, null);
348350
}
349351

350352
private boolean isInPlaybackState(){
@@ -400,8 +402,13 @@ public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
400402

401403
if(!isPreparing){
402404
if(playWhenReady){
403-
updateStatus(IPlayer.STATE_STARTED);
404-
submitPlayerEvent(OnPlayerEventListener.PLAYER_EVENT_ON_RESUME, null);
405+
if(getState()==STATE_PREPARED){
406+
updateStatus(IPlayer.STATE_STARTED);
407+
submitPlayerEvent(OnPlayerEventListener.PLAYER_EVENT_ON_AUDIO_RENDER_START, null);
408+
}else{
409+
updateStatus(IPlayer.STATE_STARTED);
410+
submitPlayerEvent(OnPlayerEventListener.PLAYER_EVENT_ON_RESUME, null);
411+
}
405412
}else{
406413
updateStatus(IPlayer.STATE_PAUSED);
407414
submitPlayerEvent(OnPlayerEventListener.PLAYER_EVENT_ON_PAUSE, null);

ijkplayer/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,6 @@ dependencies {
3131
implementation fileTree(include: ['*.jar'], dir: 'libs')
3232

3333
api "tv.danmaku.ijk.media:ijkplayer-java:$ijksdkVersion"
34-
api "com.kk.taurus.playerbase:playerbase:$playerbaseVersion"
35-
// api project(':playerbase')
34+
// api "com.kk.taurus.playerbase:playerbase:$playerbaseVersion"
35+
api project(':playerbase')
3636
}

playerbase/src/main/java/com/kk/taurus/playerbase/AVPlayer.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.kk.taurus.playerbase.config.PlayerLoader;
2525
import com.kk.taurus.playerbase.entity.DataSource;
2626
import com.kk.taurus.playerbase.entity.DecoderPlan;
27+
import com.kk.taurus.playerbase.log.DebugLog;
2728
import com.kk.taurus.playerbase.log.PLog;
2829
import com.kk.taurus.playerbase.player.BaseInternalPlayer;
2930
import com.kk.taurus.playerbase.event.BundlePool;
@@ -229,6 +230,7 @@ private void onTimerUpdateEvent(int curr, int duration, int bufferPercentage) {
229230
new OnPlayerEventListener() {
230231
@Override
231232
public void onPlayerEvent(int eventCode, Bundle bundle) {
233+
DebugLog.onPlayEventLog(eventCode, bundle);
232234
mTimerCounterProxy.proxyPlayEvent(eventCode, bundle);
233235
if(eventCode==OnPlayerEventListener.PLAYER_EVENT_ON_PREPARED){
234236
//when prepared set volume value
@@ -253,6 +255,7 @@ public void onPlayerEvent(int eventCode, Bundle bundle) {
253255
new OnErrorEventListener() {
254256
@Override
255257
public void onErrorEvent(int eventCode, Bundle bundle) {
258+
DebugLog.onErrorEventLog(eventCode, bundle);
256259
mTimerCounterProxy.proxyErrorEvent(eventCode, bundle);
257260
if(isPlayRecordOpen())
258261
mRecordProxyPlayer.onErrorEvent(eventCode, bundle);

playerbase/src/main/java/com/kk/taurus/playerbase/event/EventDispatcher.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@
1919
import android.os.Bundle;
2020
import android.view.MotionEvent;
2121

22-
import com.kk.taurus.playerbase.log.DebugLog;
2322
import com.kk.taurus.playerbase.player.OnTimerUpdateListener;
2423
import com.kk.taurus.playerbase.receiver.IReceiver;
2524
import com.kk.taurus.playerbase.receiver.IReceiverGroup;
2625
import com.kk.taurus.playerbase.touch.OnTouchGestureListener;
26+
import com.kk.taurus.playerbase.touch.TouchEventIndicator;
2727

2828
/**
2929
* Created by Taurus on 2018/4/14.
@@ -48,7 +48,6 @@ public EventDispatcher(IReceiverGroup receiverGroup){
4848
*/
4949
@Override
5050
public void dispatchPlayEvent(final int eventCode, final Bundle bundle){
51-
DebugLog.onPlayEventLog(eventCode, bundle);
5251
switch (eventCode){
5352
case OnPlayerEventListener.PLAYER_EVENT_ON_TIMER_UPDATE:
5453
mReceiverGroup.forEach(new IReceiverGroup.OnLoopListener() {
@@ -82,7 +81,6 @@ public void onEach(IReceiver receiver) {
8281
*/
8382
@Override
8483
public void dispatchErrorEvent(final int eventCode, final Bundle bundle){
85-
DebugLog.onErrorEventLog(eventCode, bundle);
8684
mReceiverGroup.forEach(new IReceiverGroup.OnLoopListener() {
8785
@Override
8886
public void onEach(IReceiver receiver) {
@@ -214,7 +212,10 @@ private void filterImplOnTouchEventListener(final IReceiverGroup.OnLoopListener
214212
mReceiverGroup.forEach(new IReceiverGroup.OnReceiverFilter() {
215213
@Override
216214
public boolean filter(IReceiver receiver) {
217-
return receiver instanceof OnTouchGestureListener;
215+
boolean gestureReceiver = receiver instanceof OnTouchGestureListener;
216+
boolean disallowReceiveGesture = receiver instanceof TouchEventIndicator
217+
&& ((TouchEventIndicator) receiver).disallowReceiveTouchEvent();
218+
return gestureReceiver && !disallowReceiveGesture;
218219
}
219220
}, new IReceiverGroup.OnLoopListener() {
220221
@Override
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.kk.taurus.playerbase.touch;
2+
3+
/**
4+
* @ClassName TouchEventIndicator
5+
* @Description
6+
* @Author Taurus
7+
* @Date 2020/9/1 9:26 PM
8+
*/
9+
public interface TouchEventIndicator {
10+
11+
/**
12+
* If you don't want to receive a touch event, the method returns true
13+
*
14+
* @return
15+
*/
16+
boolean disallowReceiveTouchEvent();
17+
18+
}

0 commit comments

Comments
 (0)