问题描述
我正在探索现有的 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 (将#修改为@)