我在一个项目中,我必须从链接播放电视频道的视频流。但问题是我必须在本机应用程序中播放视频,而不是在 web 视图中。据我所知,它只是实现了一个调用的 API VITAMIO
,它对播放 http、mms 等协议有很大帮助,但无法播放 RTMP 视频。我还研究并发现基本的androidvideoview
也无法播放RTMP,所以我只想知道有没有可用的API或者有什么方法可以在支持RTSP、RTMP、MMS、HTTP的原生android应用程序中播放视频ETC?
问问题
4507 次
2 回答
1
您可以使用 vitamio,这是插件本机应用程序播放流 rmpt,http,...非常好。它对我来说很好用。我想你通过 VLC 检查链接频道。
于 2012-11-08T18:20:15.997 回答
1
RTMP 只是闪存。VITAMIO 播放器可能会在某些设备上运行,而在其他设备上则根本无法运行。我不确定您使用的是插件版本还是他们播放器的许可版本。我与它的互动很小,因为我并没有给我留下深刻的印象(当时......我会在今年晚些时候回去再试一次)
你可以做什么:
- 创建/使用您自己的 Flash 播放器
- 创建一个包含 webview 的活动
- 在android上添加对flash插件的检测。
- 让 webview 加载你的 flash swf 文件
这里有一些代码来检测 flash 并加载一个 url(如果有):
String url = "http://www.example.com/movie.swf";
try {
PackageManager pm = getPackageManager();
ApplicationInfo flash_ai = pm.getApplicationInfo("com.adobe.flashplayer", 0);
int flash_version = pm.getPackageInfo("com.adobe.flashplayer", 0).versionCode;
if (flash_ai != null && flash_version != 0 && flash_version >= 103000000) {
flashInstalled = true;
}
} catch (NameNotFoundException ex) {
flashInstalled = false;
}
if (!flashInstalled) {
displayNeedFlashDialog();
} else {
WebView wvBrowser = new WebView(this);
wvBrowser.requestFocus();
wvBrowser.setClickable(true);
wvBrowser.clearCache(true);
wvBrowser.setVerticalScrollBarEnabled(false);
wvBrowser.setHorizontalScrollBarEnabled(false);
wvBrowser.getSettings().setPluginsEnabled(true);
wvBrowser.getSettings().setJavaScriptEnabled(true);
wvBrowser.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result) {
result.confirm();
return true;
}
;
});
setContentView(wvBrowser, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
wvBrowser.loadUrl(url);
}
于 2012-11-08T18:26:24.197 回答