instancePlayer method

FijkPlayer instancePlayer(
  1. VideoTikEntry entry
)

Implementation

FijkPlayer instancePlayer(VideoTikEntry entry) {
  var player = FijkPlayer();
  Function()? playerCall;
  playerCall  = () {
    if (player.state == FijkState.started) {
      playStartNotify!(player);
    }
  };
  player.addListener(playerCall);
  Future.wait([
    //通过立即清理数据包来减少等待时长
    player.setOption(FijkOption.formatCategory, "flush_packets", 1),
    player.setOption(FijkOption.formatCategory, "probesize", 1024 * 16),
    //设置最长分析时长
    player.setOption(FijkOption.formatCategory, "analyzemaxduration", 100),
    // player.setOption(FijkOption.formatCategory, "http-detect-range-support", 0),
    //跳过循环滤波
    player.setOption(FijkOption.codecCategory, "skip_loop_filter", 48),
    player.setOption(FijkOption.codecCategory, "skip_frame", 0),

    // player.setOption(FijkOption.playerCategory, "max_cached_duration", 500);
    // player.setOption(FijkOption.playerCategory, "dns_cache_clear", 0);
    player.setOption(FijkOption.playerCategory, "reconnect", 3),
    // player.setOption(FijkOption.playerCategory, "mediacodec", 1);
    // player.setOption(FijkOption.playerCategory, "mediacodec-auto-rotate", 1);
    // player.setOption(FijkOption.playerCategory, "mediacodec-handle-resolution-change", 1);
    //网络不好的情况下进行丢包
    player.setOption(FijkOption.playerCategory, "framedrop", 1),
    player.setOption(FijkOption.playerCategory, "infbuf", 1),
    //暂停输出直到停止后读取足够的数据包
    player.setOption(FijkOption.playerCategory, "packet-buffering", 0),
    // 不查询stream_info,直接使用
    player.setOption(FijkOption.playerCategory, "find_stream_info", 1),
    //等待开始之后才绘制
    player.setOption(FijkOption.playerCategory, "render-wait-start", 0),
  ]).then((result){
      player.setDataSource(
        entry.videoUrl,
        showCover: true,
        autoPlay: entry.autoPlay,
      );
      // player.addListener(() {
        // if (player.state == FijkState.error) {
        //   resetPlayer(entry,player);
        // }
      // });
  });
  return player;
}