iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >Flutter怎么使用Android原生播放器
  • 542
分享到

Flutter怎么使用Android原生播放器

2023-07-05 07:07:13 542人浏览 泡泡鱼
摘要

这篇文章主要介绍“Flutter怎么使用Android原生播放器”,在日常操作中,相信很多人在Flutter怎么使用Android原生播放器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Flutter怎么使用

这篇文章主要介绍“Flutter怎么使用Android原生播放器”,在日常操作中,相信很多人在Flutter怎么使用Android原生播放器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Flutter怎么使用Android原生播放器”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创建插件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;    @Override    public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) {        fpBinding = binding;        Log.e(TAG, "onAttachedToEngine");    }    @Override    public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {        Log.e(TAG, "onDetachedFromEngine");    }    @Override    public void onAttachedToActivity(@NonNull ActivityPluginBinding apBinding) {        fpBinding.getPlatfORMViewReGIStry().registerViewFactory("plugins.my_video_player/view", new VideoViewFactory(fpBinding, apBinding));        Log.e(TAG, "onAttachedToActivity");    }    @Override    public void onDetachedFroMactivityForConfiGChanges() {        Log.e(TAG, "onDetachedFromActivityForConfigChanges");    }    @Override    public void onReattachedToActivityForConfigChanges(@NonNull ActivityPluginBinding binding) {        Log.e(TAG, "onReattachedToActivityForConfigChanges");    }    @Override    public 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;    }    @Override    public 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);    }    @Override    public 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    @Override    public View getView() {        return videoView;    }    @Override    public 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怎么使用Android原生播放器”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Flutter怎么使用Android原生播放器

本文链接: https://www.lsjlt.com/news/350264.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Flutter怎么使用Android原生播放器
    这篇文章主要介绍“Flutter怎么使用Android原生播放器”,在日常操作中,相信很多人在Flutter怎么使用Android原生播放器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Flutter怎么使用...
    99+
    2023-07-05
  • Flutter使用Android原生播放器详解
    接上篇:播放器-IOS(Swift)篇 安卓端原生播放器的接入思路与ios基本一致,所以本篇就不废话了,直接上代码: 创建插件VideoViewPlugin实现FlutterPlug...
    99+
    2023-02-28
    Flutter播放器 Android Flutter播放器 Flutter原生播放器
  • 怎么在Flutter中使用媒体播放器
    今天小编给大家分享一下怎么在Flutter中使用媒体播放器的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。使用前的准备工作fl...
    99+
    2023-07-05
  • android原生MediaPlayer播放本地的m3u8
    背景 遇到某个需求,需要播放百度网盘的视频。但是通过百度网盘的sdk获取到的视频url是由若干个ts片段组成的m3u8播放源。然后把这个m3u8的播放源放在本地,也就是说m3u8是一个本地播放源。那么...
    99+
    2023-09-10
    android java 开发语言
  • flutter系列之:在flutter中使用媒体播放器
    文章目录 简介使用前的准备工作在flutter中使用video_player总结 简介 现在的app功能越来越强大,除了基本的图文之外,还需要各种各样的其他的功能,比如视频,和直播。 直播...
    99+
    2023-09-16
    flutter android ios 程序那些事 架构
  • Android怎么在原生App中嵌入Flutter
    这篇文章主要讲解了“Android怎么在原生App中嵌入Flutter”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android怎么在原生App中嵌入Flutter”吧!本文参考文档Add...
    99+
    2023-06-14
  • 怎么在Android中使用GSYVideoPlayer播放视频器
    怎么在Android中使用GSYVideoPlayer播放视频器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。GSYVideoPlayerGSYVideoPla...
    99+
    2023-06-14
  • Android中怎么使用SoundPool播放音频
    这期内容当中小编将会给大家带来有关Android中怎么使用SoundPool播放音频,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。使用SoundPool播放音效SoundPool类可用于管理和播放应用中的...
    99+
    2023-06-04
  • Flutter中视频播放器插件如何使用
    这篇文章主要讲解了“Flutter中视频播放器插件如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Flutter中视频播放器插件如何使用”吧!创建一个新的视频播放器在使用视频播放器插件...
    99+
    2023-06-29
  • Android中怎么播放音频
    这篇文章将为大家详细讲解有关Android中怎么播放音频,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在 Android 中播放音频文件一般都是使用 MediaPlayer 类来实现的,它对...
    99+
    2023-05-30
    android
  • Android MediaPlayer音频播放器怎么封装
    要封装一个Android MediaPlayer音频播放器,你可以按照以下步骤进行: 创建一个新的类,命名为AudioPlaye...
    99+
    2024-03-02
    Android
  • Android怎么自定义视频播放器
    要自定义Android视频播放器,可以按照以下步骤进行: 创建一个新的Android项目,并在布局文件中添加一个SurfaceVi...
    99+
    2023-10-26
    Android
  • 详解Flutter中视频播放器插件的使用教程
    目录创建一个新的视频播放器添加播放和暂停按钮创建一个快进添加一个视频进度指示器应用视频的字幕结论您已经看到很多包含视频内容的应用程序,比如带有视频教程的食谱应用程序、电影应用程序和体...
    99+
    2024-04-02
  • Flutter ChatGPT代码生成器怎么使用
    本篇内容主要讲解“Flutter ChatGPT代码生成器怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Flutter ChatGPT代码生成器怎么使用”吧!Chat...
    99+
    2023-07-05
  • Win7音频播放器怎么消除原声
    这篇文章主要为大家展示了“Win7音频播放器怎么消除原声”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Win7音频播放器怎么消除原声”这篇文章吧。具体操作步骤如下:右键点击桌面任务栏右下角的声音...
    99+
    2023-06-27
  • Android原生绘图工具Canvas怎么使用
    Android原生绘图工具Canvas是一个用于绘制图形和文字的类,它可以在自定义View或者SurfaceView中使用。以下是使...
    99+
    2023-08-12
    Android Canvas
  • 怎么使用qt制作音乐播放器
    要使用Qt制作音乐播放器,您可以按照以下步骤进行:1. 首先,确保已经安装了Qt开发环境。您可以从Qt官方网站上下载并安装Qt,确保...
    99+
    2023-08-09
    qt
  • Ubuntu系统中怎么使用SMPlayer播放器
    这篇文章主要讲解了“Ubuntu系统中怎么使用SMPlayer播放器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Ubuntu系统中怎么使用SMPlayer播放器”吧!Ubuntu 也是一款...
    99+
    2023-06-13
  • 利用Android怎么编写一个本地音乐播放器
    利用Android怎么编写一个本地音乐播放器?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。音乐播放需要调用service,在此,只是简单梳理播放流程。public class ...
    99+
    2023-05-31
    android roi
  • Android怎么实现音乐视频播放
    这篇文章给大家分享的是有关Android怎么实现音乐视频播放的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。步骤新建一个安卓项目,再加一个assets包在 assets中加入一段音频在界面中加入音乐的“开始”按钮和...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作