如何解决如何使用 Flutter 从 IP 地址流式传输实时视频?
我正在探索现有的 Flutter 包来播放视频文件。 Flutter 视频播放器示例和 Chewie 包的示例可以很好地播放来自 Internet 地址的视频文件。但是,我正在尝试从我的计算机网络摄像头流式传输数据,为此,我遵循了一个示例来流式传输 RaspBerry 相机视频,该视频使用 VLC 的视频流包 https://www.youtube.com/watch?v=tPcuBo5QAW4
我在 Linux 笔记本电脑和浏览器 (http://192.168.2.19:8081) 上发出“运动”命令,我可以看到网络摄像头视频。现在我尝试使用与视频中相同的示例,但是,我看不到任何流媒体视频。可以找到安装此命令的说明here。以下是我的代码:
import 'package:Flutter/material.dart';
import 'package:Flutter_vlc_player/vlc_player.dart';
import 'package:Flutter_vlc_player/vlc_player_controller.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,title: 'Flutter Demo',theme: ThemeData(
primarySwatch: Colors.blue,),home: MyHomePage(title: 'WebCam Stream'),);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key,this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String _streamUrl;
VlcPlayerController _vlcViewController;
@override
void initState() {
// Todo: implement initState
super.initState();
_vlcViewController = new VlcPlayerController();
}
void _incrementCounter() {
setState(() {
_streamUrl = (_streamUrl != null) ? null : 'http://192.168.2.19:8081';
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),body: SingleChildScrollView(
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,mainAxisSize: MainAxisSize.min,children: <Widget>[
_streamUrl == null
? Container(
child: Center(
child: RichText(
text: TextSpan(children: [
TextSpan(
text: 'Stream Closed',style: TextStyle(
fontSize: 14.0,fontWeight: FontWeight.bold,color: Colors.white,background: Paint()..color = Colors.red),)
]),)
: Expanded(
child: new VlcPlayer(
defaultHeight: 480,defaultWidth: 640,url: _streamUrl,controller: _vlcViewController,placeholder: Container(
width: 640,height: 480,)
],floatingActionButton: FloatingActionButton(
onpressed: _incrementCounter,tooltip: 'Increment',child: Icon(_streamUrl == null ? Icons.play_arrow : Icons.pause),// This trailing comma makes auto-formatting nicer for build methods.
);
}
}
请帮我解决这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。