当前位置:网站首页>flutter video_player實現監聽和自動播放下一首歌曲

flutter video_player實現監聽和自動播放下一首歌曲

2022-06-22 14:50:00 氤氳息

參考
參考

我的做法是通過監聽歌曲的當前比特置和總的時長,注意監聽的比特置,歌曲初始化後開始播放了再進行監聽,最後記得銷毀

  @override
  void initState() {
    
    super.initState();

    if (_videoPlayerController != null) {
    
      //如果視頻控制器存在,清理掉重新創建
      _videoPlayerController.removeListener(_videoListener);
      _videoPlayerController.dispose();
    }

    videoplay();

  }


  videoplay() {
    
    _videoPlayerController = VideoPlayerController.network(
        widget.videoList[curIndex])
      // _videoPlayerController = VideoPlayerController.file(File("/storage/emulated/0/DCIM/pipixia/eecd00a7e13145ff84568fe4e10ea982.mp4"))
      ..initialize().then((_) {
    
        // 確保在初始化視頻後顯示第一幀,直至在按下播放按鈕。
        setState(() {
    
          _videoPlayerController.play();
        });
      });
    //可以播放就開始監聽
    _videoPlayerController.addListener(_videoListener);
  }
  
  //監聽的方法
  void _videoListener() {
    
    setState(() {
    
      var curPosition = _videoPlayerController.value.position;
      var totalPosition = _videoPlayerController.value.duration;
      curPos = curPosition.toString().substring(2, 7);
      // curPos=curPos.subString(0,2);
      totalPos = totalPosition.toString().substring(2, 7);
      print("當前比特置${curPos},全部${totalPos}");
      //如果當前比特置是最後的比特置就跳到下一首歌
      if (curPosition.toString() != "0:00:00.000000" &&
          curPosition == totalPosition) {
    
        setState(() {
    
          curIndex++;
          if (curIndex >= widget.videoList.length) {
    
            //循環回到第一首
            curIndex = 0;
          }
          curId = widget.idList[curIndex];
          getCommentLists();
          videoplay();
        });
      }
    });
  }

  @override
  void dispose() {
    
    _videoPlayerController.dispose();
    _videoPlayerController.removeListener(_videoListener);
    _commentController.dispose();
    _focusNodeComment.dispose();
    super.dispose();
  }
原网站

版权声明
本文为[氤氳息]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/173/202206221326106921.html