首页 > 解决方案 > 如何控制使用 Flutter 上传的视频质量?

问题描述

在 Flutter 中,我正在开发一个上传高清视频的项目,然后用户应该能够像 You Tube 一样自定义视频质量。在 Flutter 中,我使用flick_video_player,一个用于播放视频的颤振库。任何人都可以建议一种进行质量控制的方法,或者任何嵌入了视频质量控制的库包吗?

class CustomVideoPlayer extends StatefulWidget
{
    CustomVideoPlayer(this.item);
    final item;

    createState()
    {
        return _CustomvideoPlayerState(this.item);
    }
}

class _CustomvideoPlayerState extends State<CustomVideoPlayer>
{
    _CustomvideoPlayerState(this.item);
    final item;

    VideoPlayerController _videoPlayerController;
    FlickManager flickManager;
    var url;

    @override initState()
    {
        super.initState();
        setState(()
        {
            SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft]);
            url = item["video_url"].toString();
            SystemChrome.setEnabledSystemUIOverlays([]);
        });

        flickManager = FlickManager
        (
            videoPlayerController: VideoPlayerController.network(url),
        );
    }

    @override
    void dispose()
    {
        super.dispose();
        _videoPlayerController.dispose();
        flickManager.dispose();
    }

    Widget build(BuildContext context)
    {
        return WillPopScope
        (
            child: Scaffold
            (
                body: SafeArea
                (
                    // top: true,
                    child: Column
                    (
                        children: <Widget>
                        [
                            Expanded
                            (
                                child: Center
                                (
                                    child: FlickVideoPlayer
                                    (
                                        systemUIOverlay: [],
                                        preferredDeviceOrientation: [DeviceOrientation.landscapeLeft],
                                        flickManager: flickManager,
                                        flickVideoWithControls: FlickVideoWithControls
                                        (
                                            controls: LandscapePlayerControls(item),
                                        ),
                                    ),
                                ),
                            ),
                        ],
                    ),
                ),
            ),
            onWillPop: onWillPopS
        );
    }

    //  Handle back press
    Future<bool> onWillPopS()
    {
        if(flickManager.flickVideoManager.isPlaying)
        {
            flickManager.flickControlManager.pause();
        }
        SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
        Navigator.pop(context);
        return Future.value(true);
    }
}

以上是代码,我使用自定义控件来播放、暂停和跳过视频。有人可以帮我吗?

标签: flutteruploadandroid-videoviewflutter-dependenciesdart-pub

解决方案


推荐阅读