我正在构建一个应用程序,用户点击按钮以全屏显示视频.最初,视频附加到ViewPager内的视图.为了能够全屏显示,我将其与父项分离,并将其重新连接到根视图.这种方法很好,除非在播放时将视频切换为全屏.当我分离播放VideoView时,它只是停止,我需要重新启动它.这是不可接受的,因为视频在恢复之前开始缓冲.这里是完成分离的代码部分:
final ViewGroup parent = (ViewGroup) findViewById(R.id.parent);
final ViewGroup root = (ViewGroup) findViewById(R.id.root);
Button b = (Button) findViewById(R.id.button);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
parent.removeView(mVideoView);
LayoutParams lp = new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
root.addView(mVideoView, lp);
}
});
Run Code Online (Sandbox Code Playgroud)
根据设备,我有一个不同的日志错误.可能是因为实际的视频播放器是由制造商提供的,而不是Android SDK.以下是Nexus 7的错误日志:
10-30 20:26:18.618: D/NvOsDebugPrintf(124): NvMMDecTVMRDestroyParser Begin
10-30 20:26:18.618: D/NvOsDebugPrintf(124): --------- Closing TVMR Frame Delivery Thread -------------
10-30 20:26:18.678: D/NvOsDebugPrintf(124): ------- NvAvpClose -------
10-30 20:26:18.678: D/NvOsDebugPrintf(124): NvMMDecTVMRDestroyParser Done
10-30 20:26:18.678: D/NvOsDebugPrintf(124): NvMMLiteTVMRDecPrivateClose Done
Run Code Online (Sandbox Code Playgroud)
我无法在不停止的情况下分离视频.我尝试使用SurfaceView或TextureView但没有成功.
我也尝试过寻找第三方视频播放器.我发现了一个商业原因(http://www.vitamio.org/),我出于商业原因无法真正使用它.我找到了一个开源的,去年没有更新过(https://code.google.com/p/dolphin-player/).
我目前只在平板电脑上定位Android 4.2或更高版本. …
我想讨论关于Android的HLS,想要学习价格,如何购买它们,以及你对这些玩家的体验.
Vitamio - http://www.vitamio.org/en/
Standart许可证是免费的,但它不支持自适应流媒体.是否有人测试过高级版或如何购买高级版
NexStreaming - http://www.nexstreaming.com/ 我发了邮件但没有回复.有人测试过吗?
Kaltura - http://www.kaltura.org/ 它看起来像一个开源替代品,但示例代码对我没用
还有其他的替代方案吗?你在Android上玩HLS的经历是什么?
谢谢..
我很长时间以来一直面临这些问题,而且我对HLS的android支持感到非常失望,因为它的行为太随机了.
要求:
1)播放多个.m3u8视频流
2)应该在不同的设备和api级别上工作.
我所讨论的和各自的问题:
方法 - 1) 具有原生MediaPlayer的TextureView:
播放的视频数量取决于设备,对于某些设备,它只播放一个视频(My Device - samsung galaxy grand quattro - api level 16),对于某些设备,它可以播放所有四个视频流.
取决于api级别,一些.m3u8网址正在使用软糖而不是kitkat.
方法 - 2) ExoPlayer:
方法 - 3) Vitamio:
成功播放每个.m3u8网址
没有多视频视频的支持
方法 - 4) grafika:
我正在寻找的解决方案:
1)应该播放多个视频流,就像上述任何一种方法一样,我的设备可以播放单个视频,但似乎Milestone Mobile能够在我的设备中播放8个视频流(How?:O).
2)如果本机MediaPlayer无法播放某些.m3u8网址,那么如何调试确切的问题就像aac编解码器,解码器,段,.ts文件等有什么问题?
3)如果本机MediaPlayer无法播放流媒体,那么我该如何制作支持大多数流媒体网址的自定义MediaPlayer?
4)是否有可能与Vitamio一起播放多个视频?
5)符合我要求的任何其他HLS客户的参考?
就个人而言,我想选择Method-1,那么有什么我可以做的吗?
我可以在eclipse中使用vitamio来传输视频网址,但最近我已经切换到android工作室,我想在gradle文件中添加vitamio库作为依赖项.我该怎么做?
我正在使用Vitamio库来播放rtsp直播.我尝试运行demo videoview类播放rtsp链接,如下所示:
http://117.103.224.75:1935/live/ definst /VTCHD3/VTCHD3_840x480_1200kbps.stream/playlist.m3u8
==>结果:它运行但质量非常差,加载视频非常低,视频中的图片不清晰,听不到声音.我不知道该怎么做才能让它运行平稳,画面清晰.请帮帮我这个问题!非常感谢 !
这是我的代码:
private String path="http://117.103.224.75:1935/live/_definst_/VTCHD3/VTCHD3_840x480_1200kbps.stream/playlist.m3u8";
private ProgressDialog prodlg;
private VideoView mVideoView;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
if (!LibsChecker.checkVitamioLibs(this))
return;
setContentView(R.layout.videoview);
prodlg=new ProgressDialog(this);
prodlg.setIcon(R.drawable.ic_launcher);
prodlg.setMessage("wating...");
prodlg.show();
mVideoView = (VideoView) findViewById(R.id.surface_view);
if (path == "") {
// Tell the user to provide a media file URL/path.
Toast.makeText(VideoViewDemo.this, "Please edit VideoViewDemo Activity, and set path" + " variable to your media file URL/path", Toast.LENGTH_LONG).show();
return;
} else {
/*
* Alternatively,for streaming media you can …
Run Code Online (Sandbox Code Playgroud) 我正在写使用从服务器(有时是从本地文件)使用HLS视频流的android应用。
哪个更容易实现?哪一个具有更好的性能和功能?我想知道关于exoplayer和vitamio(标准版)的优缺点。
android video-streaming http-live-streaming vitamio exoplayer
我开发了一个 iOS 应用程序,它使用 AVMutableComposition 结合了同时播放的多个视频和音频流。用户可以流式传输视频并控制每个音轨的音量(贝斯、鼓、吉他......)
我已经研究了几个小时,但找不到在 Android 中执行此操作的方法。尝试过少数 MediaPlayer(但即使在 Nexus 5 等某些设备中,它们也不会同时播放)、ExoPlayer(但不允许同时播放多个音轨)、Vitamio(无法找到同时播放多个音轨的方法) ), ETC。
有谁知道你是怎么做到的?
谢谢!
我正在考虑在Android上制作视频应用.我才知道,有两条著名的图书馆,FFMPEG
和Vitamio
.
我只是想知道我可以做简单的视频功能,比如播放视频,抓取一个帧,用两个库将视频转换成mp3吗?它们的优缺点是什么?
提前致谢.
我想在Android 2.2及更高版本上通过HTTP(m3u8)播放流媒体音频.使用Android 3.0及更高版本,支持HTTP流,仅低于3.0,但不支持.
解决方案是在项目中使用Vitamio.但是,Vitamio要求用户从Play商店安装插件.
所以,我的问题: - 有没有办法将Vitamio插件嵌入到项目中? - 是否有其他解决方案用于设备<Android 3.0的HTTP流媒体?
我有困难,包括Android Studio中的Vitamio库.
我该如何将它包含在我的项目中?
我应该只在VitamioBundle文件夹中包含Vitamio文件夹吗?