我正在尝试使用以下代码推送新路线 -
void selectCategory(BuildContext ctx) {
Navigator.of(ctx).push(
MaterialPageRoute(
builder: (context) => MyHomePage(
title: title,
vidUrl: vidUrl, //contains my video url
),
),
);
}
然后在 MyHomePage 路由中,我想访问这个转发的视频 url。这是我下面的代码
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title, this.vidUrl}) : super(key: key);
final String title;
final String vidUrl;
//MyHomePage({this.title, this.vidUrl});
@override
_MyHomePageState createState() => _MyHomePageState(title: title, vidUrl: vidUrl);
}
class _MyHomePageState extends State<MyHomePage> {
String title;
String vidUrl;
_MyHomePageState({this.title, this.vidUrl});
//here i'm getting error of only static members can be accessed in vidUrl variable...
final VideoControllerWrapper videoControllerWrapper = VideoControllerWrapper(
DataSource.network(vidUrl,
displayName: title),
);
@override
void initState() {
super.initState();
SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
}
@override
void dispose() {
SystemChrome.restoreSystemUIOverlays();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Stack(
children: <Widget>[
Center(
child: NeekoPlayerWidget(
onSkipPrevious: () {
print("skip");
videoControllerWrapper.prepareDataSource(
DataSource.network(
vidUrl,
displayName: title),
);
},
videoControllerWrapper: videoControllerWrapper,
actions: <Widget>[
IconButton(
icon: Icon(
Icons.share,
color: Colors.white,
),
onPressed: () {
print("share");
},
),
],
),
),
],
);
}
}
但是,我收到只能访问静态成员的错误,如果我将其更改为静态,则会发生另一个错误。视频根本没有加载。我想我以错误的方式使用变量。请用任何更好的方法来帮助我实现这一目标。 我要做的就是使用来自另一个页面的转发链接在 MyHomePage 路由中播放视频。
如果有人能在这方面帮助我,那对我来说就是世界!谢谢你的时间。