大佬教程收集整理的这篇文章主要介绍了有没有办法在Android应用程序中播放.flv视频文件?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
通常,当您在移动设备中创建显示Web内容的应用时,您必须处理仍在网络中广泛使用的FLV视频(直到HTML5将统治世界).最好的办法是用一些转换器(如ffmpeg)转换它们,但是如果你无法访问原始视频或出于某些其他原因你无法以其他合适的格式进行转换,这里你可以找到一个关于如何在Android应用程序中嵌入和播放Flash FLV视频的快速教程.
这是通过使用WebView,一个能够播放FLV的SWF播放器,当然还安装了Android的Flash插件来完成的.
首先,使用WebView创建布局xml,如下所示:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://scheR_270_11845@as.android.com/apk/res/android"> <WebView android:layout_width="fill_parent" android:id="@+id/webview" android:layout_height="fill_parent"></WebView> </LinearLayout>
package it.synesthesia.flvplayer; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.URLEncoder; import android.app.Activity; import android.content.Intent; import android.os.bundle; import android.view.View; import android.webkit.WebView; public class ViewVideo extends Activity { WebView webView; String htmlPre = "<!DOCTYPE html><html lang=\"en\"><head><Meta charset=\"utf-8\"></head><body style='margin:0; pading:0; BACkground-color: black;'>"; String htmlCode = " <embed style='width:100%; height:100%' src='http://www.platipus.nl/flvplayer/download/1.0/FLVPlayer.swf?fullscreen=true&video=@VIDEO@' " + " autoplay='true' " + " quality='high' bgcolor='#000000' " + " name='VideoPlayer' align='middle'" + // width='640' height='480' " allowScriptAccess='*' allowFullScreen='true'" + " type='application/x-shockwave-flash' " + " pluginspage='http://www.macromedia.com/go/getflashplayer' />" + ""; String htmlPost = "</body></html>"; @Override public void onCreate(Bundle savedInstanceStatE) { super.onCreate(savedInstanceStatE); setContentView(R.layout.view_video); webView = (WebView)findViewById(R.id.webview); webView.getSetTings().setJavaScriptEnabled(true); webView.getSetTings().setAllowFileAccess(true); webView.getSetTings().setPluginsEnabled(true); webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY); //thanks Patrick! htmlCode = htmlCode.replaceAll("@VIDEO@",video_link); webView.loadDataWithBaseURL("fake://fake/fake",htmlPre+htmlCode+htmlPost,"text/html","UTF-8",null); } @Override protected void onPause(){ super.onPause(); callHiddenWebViewMethod("onPause"); webView.pauseTimers(); if(isFinishing()){ webView.loadUrl("about:blank"); setContentView(new FrameLayout(this)); } } @Override protected void onResume(){ super.onResume(); callHiddenWebViewMethod("onResume"); webView.resumeTimers(); } private void callHiddenWebViewMethod(String Name){ // credits: https://stackoverflow.com/questions/3431351/how-do-i-pause-flash-content-in-an-android-webview-when-my-activity-isnt-visible if( webView != null ){ try { Method method = WebView.class.getmethod(Name); method.invoke(webView); } catch (NoSuchMethodException E) { Lo.g("No such method: " + name + E); } catch (illegalaccessexception E) { Lo.g("Illegal Access: " + name + E); } catch (InvocationTargetException E) { Lo.g("Invocation Target Exception: " + name + E); } } } }
一些解释:
>如上所述,你需要一个FLV播放器.我使用了伟大的&免费FLVPlayer http://www.platipus.nl/flvplayer/download/1.0/> FLV播放器必须驻留在网络上的网站上.我尝试将.swf放在应用程序的/ assets文件夹中并从那里调用它,但是无法加载FLV视频.如果有人能解决这个问题,请告诉我!> htmlCode包含将视频显示为“全屏”的代码(填充到webview的完整大小).> callHiddenWebViewMethod非常重要,否则视频将在活动不再可见时继续播放(以及音频).这个问题归功于评论中链接的sliseshare海报.谢谢!警告:这主要是一个黑客!要注意,事情不能按预期工作,或者可能在将来停止工作.顺便说一句,它对我来说非常好.
以上是大佬教程为你收集整理的有没有办法在Android应用程序中播放.flv视频文件?全部内容,希望文章能够帮你解决有没有办法在Android应用程序中播放.flv视频文件?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。