Невозможно загружать и воспроизводить видеофайлы, загруженные эмулятором Android на физическое устройство iOS с помощью VideoController во Flutter

Я просто хочу воспроизвести видео, которое я записал и загрузил с моего эмулятора Android на моем устройстве iOS, но по какой-то причине я не могу загрузить его с помощью VideoContoller во Flutter. Интересно, связано ли это с форматом видео, загружаемого эмулятором Android, или мне нужно преобразовать загруженное видео в другой формат? Прямо сейчас видео, которое я загружаю из своего эмулятора Android, имеет формат MP4. Я также используюVideoPlayerController.network(widget.url) чтобы скачать мой файл.

Он продолжает вращаться, как указано в моем фрагменте кода:

class VideoPlayerScreen extends StatefulWidget {
  String url;

  VideoPlayerScreen({Key key, this.url}) : super(key: key);

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

class _VideoPlayerScreenState extends State<VideoPlayerScreen> {
  VideoPlayerController _controller;
  Future<void> _initializeVideoPlayerFuture;

  @override
  void initState() {
    _controller = VideoPlayerController.network(widget.url);

    _initializeVideoPlayerFuture = _controller.initialize();

    _controller.setLooping(true);

    super.initState();
  }

  @override
  void dispose() {
    _controller.dispose();

    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      child: Stack(
        children: <Widget>[
          FutureBuilder(
            future: _initializeVideoPlayerFuture,
            builder: (context, snapshot) {
              if (snapshot.connectionState == ConnectionState.done) {
                return AspectRatio(
                  aspectRatio: _controller.value.aspectRatio,
                  child: VideoPlayer(_controller),
                );
              } else {
                // If the VideoPlayerController is still initializing, show a
                // show spinner.
                return Center(child: CircularProgressIndicator());
              }
            },
          ),
          Center(
              child: ButtonTheme(
                  height: 100.0,
                  minWidth: 200.0,
                  child: RaisedButton(
                    padding: EdgeInsets.all(60.0),
                    color: Colors.transparent,
                    textColor: Colors.white,
                    onPressed: () {
                      setState(() {
                        if (_controller.value.isPlaying) {
                          _controller.pause();
                        } else {
                          _controller.play();
                        }
                      });
                    },
                    child: Icon(
                      _controller.value.isPlaying
                          ? Icons.pause
                          : Icons.play_arrow,
                      size: 120.0,
                    ),
                  )))
        ],
      ),
    );
  }
}

1 ответ

Looks like the issue was with the video that I uploaded from my emulator's camera. When I try to upload from a real Android device this issue doesn't happen.

Другие вопросы по тегам