fijkplayer ( Flutter 媒体播放器)

pub package     Build Status    

您的支持是我们开发的动力。 欢迎Star,欢迎PR~。

一款支持 android 和 iOS 的 Flutter 媒体播放器插件,由 ijkplayer 底层驱动。通过纹理接入 Flutter 中。

README 其他语言版本: English, 简体中文.

文档

安装

在 flutter 项目配置文件 pubspec.yaml 中加入 fijkplayer 依赖。

dependencies:
  fijkplayer: ^0.0.9

基础用法

import 'package:fijkplayer/fijkplayer.dart';
import 'package:flutter/material.dart';

class VideoScreen extends StatefulWidget {
  final String url;

  VideoScreen({@required this.url});

  @override
  _VideoScreenState createState() => _VideoScreenState();
}

class _VideoScreenState extends State<VideoScreen> {
  final FijkPlayer player = FijkPlayer();

  _VideoScreenState();

  @override
  void initState() {
    super.initState();
    player.setDataSource(widget.url, autoPlay: true);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(title: Text("Fijkplayer Example")),
        body: Container(
          alignment: Alignment.center,
          child: FijkView(
            player: player,
          ),
        ));
  }

  @override
  void dispose() {
    super.dispose();
    player.release();
  }
}

示例

demo app 在 example 文件夹中。

cd example && flutter run

iOS screenshots

ios_input       ios_video

android screenshots

android_home       android_video

ijkplayer 后端

项目中使用 ijkplayer 作为后端播放内核,在 Bilibili/ijkplayer 的基础上进行修改而来 befovy/ijkplayer ,主要增加对于 Flutter 纹理接入的支持。 修改后在 CocoaPods 和 http://bintray.com 进行了发布。

单独引入方式如下

# support arm64 armv7 armv7s x86_64 i386
pod 'FIJKPlayer'
dependencies {
    // fijkplayer-full include the java lib and native shared libs for armv5 armv7 arm64 x86 x86_64
    implementation 'com.befovy.fijkplayer:fijkplayer-full:0.3.4'
    implementation 'com.befovy.fijkplayer:fijkplayer-full:0.3.4'
}

iOS 注意事项

Flutter 纹理接入的方式目前在 iOS 模拟器上不能工作,故视频播放器的图像只能在真机上显示出来,详情可查看 flutter/issues/14647。 当然如果不关注视频画面,比如播放音乐,在模拟器上调试是没问题的。

Libraries

fijkplayer