Невозможно загружать и воспроизводить видеофайлы, загруженные эмулятором 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.