Как отключить воспроизведение видео в фоновом режиме chew ie plugin - PullRequest
0 голосов
/ 12 июля 2020

Я использую плагин chew ie для воспроизведения видео. Проблема в том, что когда я перехожу к другому действию или нажимаю кнопку «Домой», видео непрерывно воспроизводится в фоновом режиме, как остановить, когда go переходит к другому действию или нажимает кнопку «Домой»

import 'package:chewie/chewie.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:video_player/video_player.dart';

class ChewieListItem extends StatefulWidget {
  // This will contain the URL/asset path which we want to play
  final VideoPlayerController videoPlayerController;
  final bool looping;

  ChewieListItem({
    @required this.videoPlayerController,
    this.looping,
    Key key,
  }) : super(key: key);

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

class _ChewieListItemState extends State<ChewieListItem> {
  ChewieController _chewieController;

  @override
  void initState() {
    super.initState();
    // Wrapper on top of the videoPlayerController
    _chewieController = ChewieController(
      videoPlayerController: widget.videoPlayerController,
      aspectRatio: 16 / 9,
      // Prepare the video to be played and display the first frame
      autoInitialize: true,
      looping: widget.looping,
 deviceOrientationsAfterFullScreen:[DeviceOrientation.portraitUp] ,
      // Errors can occur for example when trying to play a video
      // from a non-existent URL
      errorBuilder: (context, errorMessage) {
        return Center(
          child: Text(
            errorMessage,
            style: TextStyle(color: Colors.white),
          ),
        );
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(8.0),
      child: Chewie(
        controller: _chewieController,
      ),
    );
  }

  @override
  void dispose() {
    super.dispose();
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.portraitUp,
    ]);
    // IMPORTANT to dispose of all the used resources
    widget.videoPlayerController.dispose();
    _chewieController.dispose();
  }
} 

Мой видеоплеер

ChewieListItem(
      videoPlayerController: VideoPlayerController.network(
        'https://streamer12.vdn.dstreamone.net/livinghope/livinghope/playlist.m3u8',),   
)

1 Ответ

1 голос
/ 12 июля 2020

Теперь я отвечаю на свой вопрос, вот простое решение в виджете, где видеоплеер использует этот метод удаления _chewieController.pause ();

 @override
      void dispose() {
        super.dispose();
        SystemChrome.setPreferredOrientations([
          DeviceOrientation.portraitUp,
        ]);
        // IMPORTANT to dispose of all the used resources
        widget.videoPlayerController.dispose();
        _chewieController.dispose();
 _chewieController.pause();
      }
...