好的,我有一个相对简单的颤振程序来测试视频播放器插件(https://pub.dartlang.org/documentation/video_player/0.5.1/.)
当我为控制器使用“网络”或“资产”构造函数时,该播放器工作正常,但当我尝试使用“文件”构造函数时,会遇到权限拒绝错误。我指向的文件是一个mp4文件,它位于应用程序文档文件夹中。。。
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
import 'dart:async';
import 'dart:io';
import 'package:path_provider/path_provider.dart';
void main() => runApp(new MyApp());
//WILL NOT CHANGE
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => new _MyAppState();
}
//WILL CHANGE
class _MyAppState extends State<MyApp> {
String _title = 'App Bar Demo';
String _myState = 'NO STATE';
VideoPlayerController _controller;
bool _isPlaying = false;
void setControllerDir() async{
}
Future<String> appDir() async{
final directory = await getApplicationDocumentsDirectory();
return directory.path;
}
void _pressed(String message) async {
//CORRECT
setState(() {
_myState = message;
}
);
var testPath = await appDir();
print(testPath);
//WRONG
//_myState = message;
print(_myState);
}
@override
void initState() {
super.initState();
//_controller = new VideoPlayerController.network('http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_20mb.mp4',)
//_controller = new VideoPlayerController.asset('assets/test.mp4')
var file = new File('/data/user/0/com.example.videotest/app_flutter/test.mp4');
//_controller = new VideoPlayerController.asset('assets/test.mp4')
//final directory = await getApplicationDocumentsDirectory();
_controller = new VideoPlayerController.file(file)
..addListener(() {
final bool isPlaying = _controller.value.isPlaying;
if (isPlaying != _isPlaying) {
setState(() {
_isPlaying = isPlaying;
});
}
})
..initialize();
}
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: _title,
home: new Scaffold(
appBar: new AppBar(
title: new Text(_title),
actions: <Widget>[
new Text('text'),
new IconButton(icon: new Icon(Icons.add_alert), onPressed: () {_pressed('Alert Pressed');}),
new IconButton(icon: new Icon(Icons.print), onPressed: () {_pressed('Print Pressed');}),
new IconButton(icon: new Icon(Icons.people), onPressed: () {_pressed('People Pressed');}),
new RaisedButton(child: new Text('Button'),onPressed: () {_pressed('Button Pressed');}),
],
),
body: new Container(
padding: const EdgeInsets.all(10.0),
child: new AspectRatio(
aspectRatio: 1280 / 720,
child: new VideoPlayer(_controller),
),
),
floatingActionButton: new FloatingActionButton(
onPressed:
_controller.value.isPlaying ? _controller.pause : _controller.play,
child: new Icon(
_controller.value.isPlaying ? Icons.pause : Icons.play_arrow,
),
),
),
);
}
}
我对Android和颤振开发还不熟悉。我尝试将外部存储权限添加到清单中,但没有帮助。无论如何,我正在运行颤振测试2和颤振医生检查良好。我在Android Studio的设备文件浏览器中使用上传程序添加了视频文件,我可以在那里看到该文件。任何线索都将不胜感激。谢谢:-D
好吧,让我澄清一下这里发生了什么,以防有人偶然发现这个问题,需要一些澄清。因此,我有一个简单的video_player应用程序示例,当我试图访问已上传到模拟器中使用Android Studio中的设备文件资源管理器的 /data/user/0/com.example.videotest/app_flutter目录中的视频文件时,该示例不起作用。我得到了许可拒绝错误。原来,我需要打开一个终端,并使用“adb”工具将视频文件“推送”到该目录,以便在文件上获得正确的权限,并获得视频控制器对象的文件构造函数来处理该文件。但是首先,我必须将adb deamon设置为root运行,以获得推送文件的权限。所以归结为...
adb root
adb push test.mp4 /data/user/0/com.example.videotest/app_flutter/
我想玩。iPhone应用程序中的mpd文件,为此我尝试了VLC播放器,但它没有按照预期工作,播放视频花费了太多时间。我还有其他选择吗。像Android中的exoplayer这样的mpd文件。 我已经为此目的实现了VLC媒体播放器,但现在我正在寻找另一种选择。如果有人对此有任何想法,请帮助。
函数名称: 播放音频 函数功能: 在后台播放指定的声音文件 函数方法 media.playAudio(path,vol,flag) 参数 类型 必填 说明 path string 是 音频文件名,支持 mp3、m4a、m4r、ogg、wav vol string 否 音频音量,不写默认,使用当前设置的音量 flag string 否 是否循环播放,不写默认为 false - 不循环,true -
我想使用html5视频标签嵌入一个视频: https://dl.dropboxusercontent.com/u/64454818/TMP/P6135199.MOV 我使用对其进行了转换: FFMPEG输出: 我尝试将其嵌入如下: 然而,Chrome不播放视频,只提供下载(和我转换视频之前一样)。Firefox也有同样的问题。 我已经测试和其他mp4文件(从我的手机)播放得很好。 有什么问题吗?我
我一直试图在ShakaPlayer中播放加密的。WebM媒体文件,但没有太多成功,我在这里寻求任何经历过这一点的人的建议。如果这个很棒的开发人员社区有人能在这里指导我,那就太好了。 第1轮-我所尝试的(编码和虚线): 使用ffmpeg.将.mp4文件编码为多流Video.webm(VP9)&单流Audio.webm(Vorbis)文件 使用webm_tools/webm_dash_manifest
我正在尝试使用HTTP直播(HLS)将视频流传输到我的电脑和iPhone。在阅读了苹果的“HTTP直播概述”以及“为iPhone和iPad创建和部署HTTP直播媒体的最佳实践”之后,我有点卡住了。 我获取了我的源文件(一个mkv),并使用ffmpeg对文件进行编码,采用MPEG-TS格式、苹果推荐的设置和基准3.0配置文件: 不用担心。我使用预编译的分段工具来分割视频并构建一个. m3u8播放列表
媒体播放器类很好。然而,我无法播放存储在另一个类中的mp3文件(当鼠标单击时)。有人能检查我的密码吗? 这是我尝试用来播放音频文件的类: 当我运行程序时(在下面勾选的鼠标上),我得到了以下两个错误:错误1:线程“AWT-EventQueue-0”java.lang中的异常。不支持的操作异常:尚未实现错误2:线程“thread-3”java.llang中的例外。IllegalStateExcepti