日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

alert()的功能_功能强大的Flutter 视频播放插件

發布時間:2025/3/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 alert()的功能_功能强大的Flutter 视频播放插件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

flutter_tencentplayer_plus 是基于騰訊云點播封裝的flutter版的播放器插件 提供video_player 相似的api, 是flutter_tencentplayer的優化版本 ,flutter_tencentplayer 開源項目是我和大帥一起合作的一個開源項目,

支持功能

  • 支持直播源

  • 視頻跳轉

  • 切換視頻源

  • 邊下邊播放

  • 清晰度切換

  • 設置播放速度

  • 效果圖

    1.Setup

    flutter_tencentplayer_plus: ${last_version}

    or
    flutter_tencentplayer_plus:
    git:
    url: https://github.com/yxwandroid/flutter_tencentplayer_plus.git

    For Android

  • project/android/build.gradle 添加依賴的aar:

  • def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
    def plugins = new Properties()
    def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
    if (pluginsFile.exists()) {
    pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
    }

    allprojects {
    repositories {
    google()
    jcenter()
    flatDir {
    dirs "${plugins.get("flutter_tencentplayer")}android/libs"
    }
    }
    }
  • AndroidManifest.xml 聲明權限:

    <uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  • For Ios?


    //項目的info.plist文件上添加如下權限<key>NSAppTransportSecuritykey><dict><key>NSAllowsArbitraryLoadskey><true/>dict>

    2.Usage(TencentPlayer)

    1.初始化播放器

    提供 asset、network、filePath、fileId四種方式播放

    TencentPlayerController _controller;

    _MyAppState() {
    listener = () {
    if (!mounted) {
    return;
    }
    setState(() {});
    };
    }

    initState() {
    _controller = TencentPlayerController.network('http://file.jinxianyun.com/testhaha.mp4', playerConfig: PlayerConfig())
    //_controller = TencentPlayerController.asset('static/tencent1.mp4')
    //_controller = TencentPlayerController.file('/storage/emulated/0/test.mp4')
    //_controller = TencentPlayerController.network(null, playerConfig: {auth: {"appId": 1252463788, "fileId": '4564972819220421305'}})
    ..initialize().then((_) {
    setState(() {});
    });
    _controller.addListener(listener);
    }

    2.PlayerConfig?(播放器配置參數 )

    _controller = TencentPlayerController.network(url, playerConfig: PlayerConfig())

    PropTypeDefaultNote
    autoPlaybooltrue是否自動播放
    loopboolfalse是否循環播放
    headersMap請求頭
    cachePathString緩存路徑(邊播放邊下載)
    progressIntervalint200播放進度回調頻率(毫秒)
    startTimeint0哪里開始播放(秒)
    authMap云點播視頻源appId&fileId

    3.TencentPlayerValue?(播放器回調)

    Text("總時長:" + _controller.value.duration.toString())
    PropTypeNote
    initializedbool是否初始化完成從而顯示播放器
    aspectRatiodouble用來控制播放器寬高比
    durationDuration時長
    positionDuration播放進度
    playableDuration緩沖進度
    isPlayingbool是否在播放
    sizeSize視頻寬高
    isLoadingbool是否在加載
    netSpeedint視頻播放網速
    ratedouble播放速度
    bitrateIndexint視頻清晰度

    4.Event?(播放器事件)

    a.跳轉進度

    _controller.seekTo(Duration(seconds: 5));

    b.設置播放速度

    _controller.setRate(1.5); // 1.0 ~ 2.0

    c.切換播放源

    controller?.removeListener(listener);
    controller?.pause();
    controller = TencentPlayerController.network(url, playerConfig: PlayerConfig(startTime: startTime ?? controller.value.position.inSeconds));
    controller?.initialize().then((_) {
    if (mounted) setState(() {});
    });
    controller?.addListener(listener);

    d.切換清晰度(實質就是切換播放源)

    3.Usage(Download)

    離線下載, 支持斷點續傳(這里只支持m3u8視頻、fileId), 支持多文件同時下載

    1.初始化下載器

    DownloadController _downloadController;

    _MyAppState() {
    downloadListener = () {
    if (!mounted) {
    return;
    }
    setState(() {});
    };
    }

    initState() {
    _downloadController = DownloadController('/storage/emulated/0/tencentdownload', appId: 1252463788);
    _downloadController.addListener(downloadListener);
    }

    2.Event?(下載事件)

    a. 下載

    _downloadController.dowload("4564972819220421305", quanlity: 2);
    // _downloadController.dowload("http://1253131631.vod2.myqcloud.com/26f327f9vodgzp1253131631/f4bdff799031868222924043041/playlist.m3u8");

    b. 暫停下載

    _downloadController.pauseDownload("4564972819220421305");
    // _downloadController.stopDownload("http://1253131631.vod2.myqcloud.com/26f327f9vodgzp1253131631/f4bdff799031868222924043041/playlist.m3u8");

    b. 取消下載

    _downloadController.cancelDownload("4564972819220421305");
    // _downloadController.cancelDownload("http://1253131631.vod2.myqcloud.com/26f327f9vodgzp1253131631/f4bdff799031868222924043041/playlist.m3u8");

    3.DownloadValue?(下載信息回調)

    因為支持多文件同時下載,回調以Map返回,key為url/fileId

    PropTypeNote
    downloadStatusString"start"、"progress"、"stop"、"complete"、"error"
    quanlityint1: "FLU"、2: "SD"、3: "HD"、4: "FHD"、5: "2K"、6: "4K"
    durationint
    sizeint文件大小
    downloadSizeint已下載大小
    progressint已下載大小
    playPathString下載文件的絕對路徑
    isStopbool是否暫停下載
    urlString下載的視頻鏈接
    fileIdString下載的視頻FileId
    errorString下載的錯誤信息

    4.Example

    5.更新內容

    1,升級android,IOS LiteAVSDK 6.8.7969

    6.參考

    騰訊云點播android本:

    ?https://github.com/tencentyun/SuperPlayer_Android/wiki

    騰訊云點播ios版本:

    ?https://github.com/tencentyun/SuperPlayer_iOS

    flutter_tencentplayer :

    https://github.com/qq326646683/flutter_tencentplayer

    總結

    以上是生活随笔為你收集整理的alert()的功能_功能强大的Flutter 视频播放插件的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。