提交 cdd82a3f authored 作者: kongdywang's avatar kongdywang

fix android miss plugin problem

上级 f626ddfc
...@@ -25,21 +25,24 @@ import android.text.TextUtils; ...@@ -25,21 +25,24 @@ import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.util.Rational; import android.util.Rational;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi; import androidx.annotation.RequiresApi;
import com.tencent.vod.flutter.model.TXPipResult; import com.tencent.vod.flutter.model.TXPipResult;
import com.tencent.vod.flutter.model.TXVideoModel; import com.tencent.vod.flutter.model.TXVideoModel;
import com.tencent.vod.flutter.tools.TXCommonUtil; import com.tencent.vod.flutter.tools.TXCommonUtil;
import com.tencent.vod.flutter.ui.FlutterPipImplActivity; import com.tencent.vod.flutter.ui.FlutterPipImplActivity;
import io.flutter.embedding.engine.plugins.FlutterPlugin;
import io.flutter.embedding.engine.plugins.FlutterPlugin.FlutterPluginBinding;
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding;
import io.flutter.plugin.common.EventChannel;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import io.flutter.embedding.engine.plugins.FlutterPlugin;
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding;
import io.flutter.plugin.common.EventChannel;
/** /**
* Picture-in-picture management. * Picture-in-picture management.
* *
...@@ -54,9 +57,8 @@ public class FTXPIPManager { ...@@ -54,9 +57,8 @@ public class FTXPIPManager {
FTXAudioManager mTxAudioManager; FTXAudioManager mTxAudioManager;
private ActivityPluginBinding mActivityBinding; private ActivityPluginBinding mActivityBinding;
private FlutterPluginBinding mFlutterPluginBinding;
private final FlutterPlugin.FlutterAssets mFlutterAssets; private final FlutterPlugin.FlutterAssets mFlutterAssets;
private EventChannel mPipEventChannel; private final EventChannel mPipEventChannel;
private final FTXPlayerEventSink mPipEventSink = new FTXPlayerEventSink(); private final FTXPlayerEventSink mPipEventSink = new FTXPlayerEventSink();
private boolean mIsInPipMode = false; private boolean mIsInPipMode = false;
private final BroadcastReceiver mPipBroadcastReceiver = new BroadcastReceiver() { private final BroadcastReceiver mPipBroadcastReceiver = new BroadcastReceiver() {
...@@ -90,10 +92,10 @@ public class FTXPIPManager { ...@@ -90,10 +92,10 @@ public class FTXPIPManager {
* @param flutterAssets Flutter resource management. * @param flutterAssets Flutter resource management.
* flutter资源管理 * flutter资源管理
*/ */
public FTXPIPManager(FTXAudioManager mTxAudioManager, FlutterPluginBinding flutterPluginBinding, public FTXPIPManager(FTXAudioManager mTxAudioManager, @NonNull EventChannel pipEventChannel,
ActivityPluginBinding activityBinding, FlutterPlugin.FlutterAssets flutterAssets) { ActivityPluginBinding activityBinding, FlutterPlugin.FlutterAssets flutterAssets) {
this.mTxAudioManager = mTxAudioManager; this.mTxAudioManager = mTxAudioManager;
this.mFlutterPluginBinding = flutterPluginBinding; this.mPipEventChannel = pipEventChannel;
this.mActivityBinding = activityBinding; this.mActivityBinding = activityBinding;
this.mFlutterAssets = flutterAssets; this.mFlutterAssets = flutterAssets;
registerActivityListener(); registerActivityListener();
...@@ -101,9 +103,7 @@ public class FTXPIPManager { ...@@ -101,9 +103,7 @@ public class FTXPIPManager {
} }
private void initPipEventChannel() { private void initPipEventChannel() {
if (null == mPipEventChannel) { if (null != mPipEventChannel) {
mPipEventChannel = new EventChannel(mFlutterPluginBinding.getBinaryMessenger(),
FTXEvent.PIP_CHANNEL_NAME);
mPipEventChannel.setStreamHandler(new EventChannel.StreamHandler() { mPipEventChannel.setStreamHandler(new EventChannel.StreamHandler() {
@Override @Override
public void onListen(Object arguments, EventChannel.EventSink events) { public void onListen(Object arguments, EventChannel.EventSink events) {
......
...@@ -73,6 +73,7 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware, ...@@ -73,6 +73,7 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware,
private static final String EXTRA_VOLUME_STREAM_TYPE = "android.media.EXTRA_VOLUME_STREAM_TYPE"; private static final String EXTRA_VOLUME_STREAM_TYPE = "android.media.EXTRA_VOLUME_STREAM_TYPE";
private EventChannel mEventChannel; private EventChannel mEventChannel;
private EventChannel mPipEventChannel;
private FTXPlayerEventSink mEventSink = new FTXPlayerEventSink(); private FTXPlayerEventSink mEventSink = new FTXPlayerEventSink();
private VolumeBroadcastReceiver mVolumeBroadcastReceiver; private VolumeBroadcastReceiver mVolumeBroadcastReceiver;
...@@ -187,6 +188,8 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware, ...@@ -187,6 +188,8 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware,
mFlutterPluginBinding = flutterPluginBinding; mFlutterPluginBinding = flutterPluginBinding;
mPlayers = new SparseArray<>(); mPlayers = new SparseArray<>();
initAudioManagerIfNeed(); initAudioManagerIfNeed();
mPipEventChannel = new EventChannel(flutterPluginBinding.getBinaryMessenger(),
FTXEvent.PIP_CHANNEL_NAME);
mEventChannel = new EventChannel(flutterPluginBinding.getBinaryMessenger(), mEventChannel = new EventChannel(flutterPluginBinding.getBinaryMessenger(),
"cloud.tencent.com/playerPlugin/event"); "cloud.tencent.com/playerPlugin/event");
mEventChannel.setStreamHandler(new EventChannel.StreamHandler() { mEventChannel.setStreamHandler(new EventChannel.StreamHandler() {
...@@ -432,7 +435,7 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware, ...@@ -432,7 +435,7 @@ public class SuperPlayerPlugin implements FlutterPlugin, ActivityAware,
private void initPipManagerIfNeed() { private void initPipManagerIfNeed() {
if (null == mTxPipManager) { if (null == mTxPipManager) {
mTxPipManager = new FTXPIPManager(mTxAudioManager, mFlutterPluginBinding, mActivityPluginBinding, mTxPipManager = new FTXPIPManager(mTxAudioManager, mPipEventChannel, mActivityPluginBinding,
mFlutterPluginBinding.getFlutterAssets()); mFlutterPluginBinding.getFlutterAssets());
} }
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论