android - 压缩的视频文件无法在 WebServer 的 VideoView 中播放
问题描述
我正在开发录制视频并保存到网络服务器的应用程序,由于录制的视频太大,我使用了一些压缩技术GiraffeCompressor和SiliCompressor来减小原始视频的大小。
应用压缩技术后,视频大小减小,我还将压缩的视频文件播放到我的VideoView
到这里一切正常
当我将压缩的视频文件上传到服务器并尝试从VideoView中的 url 播放视频时,它没有播放。
这是我在VideoView中从 url 播放视频的源代码。我的VideoView代码非常适合播放另一个视频(来自 url),但它不能播放我的压缩视频文件。
从我的 LocalHost 服务器播放视频(完美运行),但无法从 Live Hosted Server 播放视频。
我的代码有什么问题吗?请帮我。
VideoView vv = (VideoView)findViewById(R.id.vv);
vv.setZOrderOnTop(true);
try {
MediaController mediacontroller = new MediaController(this);
mediacontroller.setAnchorView(vv);
Uri uri = Uri.parse(_video_link);
vv.setMediaController(mediacontroller);
vv.setVideoURI(uri);
vv.seekTo(1);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
vv.requestFocus();
vv.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
mp.setLooping(true);
vv.start();
}
});
vv.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp)
{
vv.resume();
}
});
这是我的日志猫
05-24 10:04:04.150 14581-14581/? D/MediaPlayerNative: getMetadata
05-24 10:04:04.151 14581-14581/? I/MediaPlayer: constructor
05-24 10:04:04.156 14581-14581/? I/MediaPlayer: start
05-24 10:04:04.157 14581-14581/? I/MediaPlayer: start
05-24 10:04:04.207 14581-14717/? W/MediaPlayerNative: info/warning (804, -2147479551)
05-24 10:04:04.211 14581-14717/? W/MediaPlayerNative: info/warning (804, -38)
05-24 10:04:04.229 14581-14717/? W/MediaPlayerNative: info/warning (3, 0)
05-24 10:04:04.267 14581-14581/? I/MediaPlayer: constructor
05-24 10:04:04.270 14581-14581/? I/MediaPlayer: setDataSource:http://www.selfilife.com/App/media/priteshvishwakarma/post_video/VIDEO_20180522_122801.mp4
05-24 10:04:04.271 14581-14581/? W/MediaPlayer: Couldn't open http://www.selfilife.com/App/media/priteshvishwakarma/post_video/VIDEO_20180522_122801.mp4: java.io.FileNotFoundException: No content provider: http://www.selfilife.com/App/media/priteshvishwakarma/post_video/VIDEO_20180522_122801.mp4
05-24 10:04:04.271 14581-14581/? I/MediaPlayer: setDataSource:http://www.selfilife.com/App/media/priteshvishwakarma/post_video/VIDEO_20180522_122801.mp4
解决方案
请尝试使用
vv.setVideoPath(testVideoURL);
,而不是vv.setVideoURI(uri);
可能这可以帮助。我只是猜测,但如果在后端使用自签名 https 证书,可能会出现类似问题。如果可能,请附上您的日志。
UPD。看起来您已经发现问题出在
SiliCompressor
库内部https://github.com/Tourenathan-G5organisation/SiliCompressor/issues/36
推荐阅读
- angular - 从服务到组件的 Angular REST 数据
- javascript - 如何组合这些功能?
- api - 如何将多个 OpenAPI 3 规范文件组合在一起?
- android - 如何使用自定义相机解决在 Android 中自动裁剪图像的问题?
- python - 跨 numpy 数组的多个索引执行相同的自定义操作
- javascript - 在 javascript/jquery 的选择选项值中设置双引号字符串,也可以从 javascript/jquery 获取
- php - 我知道闭包可以用作变量值。但我很困惑哪些被称为这个值
- java - Selenium:带有下拉框的 HtmlUnit UnexpectedTagNameException 错误
- fatal-error - git diff 致命:不明确的参数未知修订版或路径不在工作树中
- c# - 如何正确地将样式应用于 Open Office XML 书签文本