当前位置: 首页 > news >正文

怎样才能被百度秒收录博爱seo排名优化培训

怎样才能被百度秒收录,博爱seo排名优化培训,局域网建设个人网站,百度企业网站建设接上篇:Flutter3引用原生播放器-IOS(Swift)篇 安卓端原生播放器的接入思路与ios基本一致,所以本篇就不废话了,直接上代码: 创建插件VideoViewPlugin实现FlutterPlugin: package io.flutter.plugins.videoplayer;imp…

接上篇:Flutter3引用原生播放器-IOS(Swift)篇

安卓端原生播放器的接入思路与ios基本一致,所以本篇就不废话了,直接上代码:

创建插件VideoViewPlugin实现FlutterPlugin:

package io.flutter.plugins.videoplayer;import android.util.Log;import androidx.annotation.NonNull;import io.flutter.embedding.engine.plugins.FlutterPlugin;
import io.flutter.embedding.engine.plugins.activity.ActivityAware;
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding;public class VideoViewPlugin implements FlutterPlugin, ActivityAware {private final static String TAG = "VideoViewPlugin";FlutterPluginBinding fpBinding;@Overridepublic void onAttachedToEngine(@NonNull FlutterPluginBinding binding) {fpBinding = binding;Log.e(TAG, "onAttachedToEngine");}@Overridepublic void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {Log.e(TAG, "onDetachedFromEngine");}@Overridepublic void onAttachedToActivity(@NonNull ActivityPluginBinding apBinding) {fpBinding.getPlatformViewRegistry().registerViewFactory("plugins.my_video_player/view", new VideoViewFactory(fpBinding, apBinding));Log.e(TAG, "onAttachedToActivity");}@Overridepublic void onDetachedFromActivityForConfigChanges() {Log.e(TAG, "onDetachedFromActivityForConfigChanges");}@Overridepublic void onReattachedToActivityForConfigChanges(@NonNull ActivityPluginBinding binding) {Log.e(TAG, "onReattachedToActivityForConfigChanges");}@Overridepublic void onDetachedFromActivity() {Log.e(TAG, "onDetachedFromActivity");}
}

由于引用视频播放器时需要用到Activity的context,所以实现了ActivityAware接口,在onAttachedToActivity方法中注册PlatformViewFactory!

创建VideoViewFactory实现PlatformViewFactory:

package io.flutter.plugins.videoplayer;import android.content.Context;import io.flutter.Log;
import io.flutter.embedding.engine.plugins.FlutterPlugin;
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding;
import io.flutter.plugin.common.StandardMessageCodec;
import io.flutter.plugin.platform.PlatformView;
import io.flutter.plugin.platform.PlatformViewFactory;public class VideoViewFactory extends PlatformViewFactory {private final static String TAG = "VideoViewFactory";private final FlutterPlugin.FlutterPluginBinding fpBinding;private final ActivityPluginBinding apBinding;public VideoViewFactory(FlutterPlugin.FlutterPluginBinding fpBinding, ActivityPluginBinding apBinding) {super(StandardMessageCodec.INSTANCE);Log.e(TAG, "VideoViewFactory");this.fpBinding = fpBinding;this.apBinding = apBinding;}@Overridepublic PlatformView create(Context context, int viewId, Object args) {Log.e(TAG, "PlatformView-create:" + args.toString());return new VideoViewPlayer(args.toString(), fpBinding, apBinding);}}

创建VideoViewPlayer,实现PlatformView和MethodChannel.MethodCallHandler:

package io.flutter.plugins.videoplayer;import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;import androidx.annotation.NonNull;
import androidx.annotation.Nullable;import com.th.kjjl_flutter.R;
import com.videoplayer.player.VideoView;import io.flutter.embedding.engine.plugins.FlutterPlugin;
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.platform.PlatformView;public class VideoViewPlayer implements PlatformView, MethodChannel.MethodCallHandler {private final static String TAG = "VideoPlayerView";Activity context;private VideoView videoView;private MethodChannel methodChannel;VideoViewPlayer(String viewId, FlutterPlugin.FlutterPluginBinding fpBinding, ActivityPluginBinding apBinding) {this.context = apBinding.getActivity();videoView = (VideoView) LayoutInflater.from(context).inflate(R.layout.video_player, null);methodChannel = new MethodChannel(fpBinding.getBinaryMessenger(), "my_video_player_" + viewId);methodChannel.setMethodCallHandler(this);}@Overridepublic void onMethodCall(@NonNull MethodCall call, @NonNull MethodChannel.Result result) {Log.e(TAG, "call.method>>" + call.method);switch (call.method) {case "setUrl":String url = call.arguments.toString();videoView.initVideoController(context);videoView.setUrl(url);break;case "start":videoView.start();break;case "pause":videoView.pause();break;case "release":videoView.pause();videoView.release();break;case "stopFullScreen":videoView.stopFullScreen();break;default:result.notImplemented();}}@Nullable@Overridepublic View getView() {return videoView;}@Overridepublic void dispose() {Log.e(TAG, "dispose>>");videoView.pause();videoView.release();methodChannel.setMethodCallHandler(null);methodChannel = null;}}

其中的VideoView即引用的第三方播放器库,你可以根据自己情况,使用常见的安卓端开源播放器如GSY,饺子,DKPlayer等!

video_player.xml:

<?xml version="1.0" encoding="utf-8"?>
<com.videoplayer.player.VideoView xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/videoView"android:layout_width="match_parent"android:layout_height="match_parent" />

在MainActivity中注册插件:

class MainActivity : FlutterActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)flutterEngine!!.plugins.add(VideoViewPlugin())}
}

注意:不要在GeneratedPluginRegistrant中去注册插件包括IOS,这个类由系统自动生成其它第三方插件注册代码!安卓端在MainActivity中注册,IOS端在AppDelegate中注册!

flutter中的引用以及通信方法,上一篇已经写了,本篇就不再重复了!需要注意的是,插件名,插件id,methodChannel等,安卓,IOS和Flutter三端一定要一致!

http://www.yayakq.cn/news/395823/

相关文章:

  • 建站资讯互联网建筑公司
  • 公司网站手机版模板wordpress custom fields
  • 网站里做个子网页怎么做优化设计六年级下册数学答案
  • 网站怎么才能吸引人景观设计公司名称
  • 申请收费网站空间网站建设公司如何生存
  • 建网站知识低调与华丽wordpress版
  • 网站建设廾金手指专业壹柒网络营销的多种形式和特点
  • asp网站转wap网站网络运营怎么学
  • 知名的食品行业网站开发wordpress恢复默认链接
  • 池州家居网站建设怎么样免费网络在线打电话
  • 视频变成网站怎么做邯郸市
  • 品牌建设成果镇江网站关键字优化公司
  • 做个人网站需要哪些跨境数据专线内部管理
  • 金融中介做网站需要企业做网站价格
  • 企业公司网站管理系统建设智能家居网站SWOT分析
  • 企业网站建设主要类型及选择腾讯网站建设推广
  • 京东建站模板wordpress nikkon
  • 网站模块图深圳做响应式网站制作
  • 盐亭做网站如何修改网站ico
  • 那些小网站是哪里人做的网站开发公用头部
  • 上海自建网站电脑网站建设方案
  • 涵江建设局网站司法网站建设运营情况
  • 做招聘网站没有数据wordpress制作游戏
  • 视频网站直播怎么做的论坛的网站开发项目
  • app开发与网站建设难度做网站优化就是发文章吗
  • 学院网站建设流程图沂水网站制作
  • 建站开发株洲网站建设制作
  • 旅游公司网站制作做网站想要中立
  • wordpress网站音乐播放网站建设费用评估
  • 东莞php网站建设价格大学网站建设招标