
通常,当您在移动设备中创建显示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://schemas.androID.com/apk/res/androID"><WebVIEw androID:layout_wIDth="fill_parent" androID:ID="@+ID/webvIEw" androID:layout_height="fill_parent"></WebVIEw> </linearLayout>
然后,创建Activity类,这里是一个提取:
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视频文件?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)