【发布时间】:2020-06-12 13:31:55
【问题描述】:
我正在尝试使用 video_player 插件在 Flutter 应用程序中播放 vimeo 视频,但得到没有成功,它抛出了一堆错误。
请帮助我如何在颤振应用程序中实现这一点?使用 webview 或任何插件等?也许一个代码 sn-p 对我有很大的帮助!
这是我的代码 sn-p
import 'package:video_player/video_player.dart';
import 'package:flutter/material.dart';
void main() => runApp(VideoApp());
class VideoApp extends StatefulWidget {
@override
_VideoAppState createState() => _VideoAppState();
}
class _VideoAppState extends State<VideoApp> {
VideoPlayerController _controller;
@override
void initState() {
super.initState();
_controller = VideoPlayerController.network(
'https://vimeo.com/{some-video-id}')
..initialize().then((_) {
// Ensure the first frame is shown after the video is initialized, even before the play button has been pressed.
setState(() {});
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Video Demo',
home: Scaffold(
body: Center(
child: _controller.value.initialized
? AspectRatio(
aspectRatio: _controller.value.aspectRatio,
child: VideoPlayer(_controller),
)
: Container(),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
setState(() {
_controller.value.isPlaying
? _controller.pause()
: _controller.play();
});
},
child: Icon(
_controller.value.isPlaying ? Icons.pause : Icons.play_arrow,
),
),
),
);
}
@override
void dispose() {
super.dispose();
_controller.dispose();
}
}
调试控制台中的错误 -
E/AccessibilityBridge(28662):VirtualView 节点不能是根节点 节点。 E/ExoPlayerImplInternal(28662):源错误。 E/ExoPlayerImplInternal(28662): com.google.android.exoplayer2.upstream.HttpDataSource$InvalidResponseCodeException: 响应代码:404 E/ExoPlayerImplInternal(28662):在 com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:300) E/ExoPlayerImplInternal(28662):在 com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:83) E/ExoPlayerImplInternal(28662):在 com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:885) E/ExoPlayerImplInternal(28662):在 com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:381) E/ExoPlayerImplInternal(28662):在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) E/ExoPlayerImplInternal(28662):在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) E/ExoPlayerImplInternal(28662):在 java.lang.Thread.run(Thread.java:919)
【问题讨论】:
-
请提供代码示例来解释您尝试做什么。
-
@Abjox 我已经更新了我的问题,请看一下。非常感谢您的帮助!
-
video_player 插件用于直接播放视频文件,这意味着您需要一个指向视频文件本身的直接 URL。您不能只给它某个随机站点的 URL,因为它不知道如何处理它。
-
感谢您的回复@Abion47 ????????还有其他方法可以实现吗?
-
我非常需要将 vimeo 集成到我的 Flutter 应用中,请告诉我是否可以实现?
标签: android flutter dart vimeo flutter-web