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

fix android miss plugin problem

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