Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android播放flash

Android播放flash

編輯:關於Android編程

  Android本身並沒有播放flash的組件,但是在有Adobe提供的flash插件的情況下,用WebView打開網頁,使用網頁可以播放flash。所以本文的思路是使用WebView播放flash,通過java代碼控制WebView中的javascript代碼來控制flash的播放和進度顯示操作。由於android 2.2以下的系統不能安裝flash插件,所以不能使用此方法播放flash。

首先是要編輯一個能夠正常播放flash的網頁,並且能夠提供相應操作的javascript代碼供java代碼控制flash的播放。這個是一個關鍵,如果這個網頁寫的有問題的話,編譯也不會報錯,但是flash播放不能正常運行。

示例代碼如下:


 
 

    

	
empty


<script type='text/javascript'> var total;//定義flash影片總桢數 var frame_number;//定義flash影片當前桢數 var rate = 12;//幀頻 //動態顯示播放影片的當前桢/總桢數(進度條顯示) function showcount(){ total = movie.TotalFrames(); frame_number = movie.CurrentFrame(); frame_number++; var progressSize = 500*(frame_number/total); CallJava.consoleFlashProgress(progressSize,total/12); } //播放影片 function Play(){ movie.Play(); showcount(); } //暫停播放 function Pause(){ movie.StopPlay(); } //開始載入flash影片 function loadSWF(fsrc, fwidth, fheight){ movie.LoadMovie(0, fsrc); movie.width = fwidth; movie.height = fheight; frame_number = movie.CurrentFrame(); } //快進或者快退 function GoToFrame(progress){ total = movie.TotalFrames(); if(movie.IsPlaying()) Pause(); frame_number = total*progress/500; movie.GotoFrame(frame_number); Play(); } //flash插件不存在 function error(){ document.body.style.backgroundImage="url(flash_view_back_7490.jpg)"; document.getElementById("flash_page").innerHTML = "" + "缺少支持flash播放的插件,請安裝後再試!"; } //設置flash的高 function setHeight(height){ movie.height = height; document.getElementById("flash_page").style.height = height; } </script>

上述代碼中使用javascript控制flash的播放,更多的操作請參照博客《JS控制網頁中Flash影片的播放(附帶各參數)》。代碼中的CallJava是用來反向控制java代碼中的顯示的。java代碼中為這個類提供了相應的方法。具體代碼如下:

	private final class CallJava{
		public void consoleFlashProgress(float progressSize, int total){
			showFlashProgress(progressSize, total);
		}
	}

  要使用CallJava類,還需要設置WebView的屬性:

	flash_view.addJavascriptInterface(new CallJava(), "CallJava");

另外還要設置WebView可以用java調用javascript等屬性:

		flash_view.getSettings().setJavaScriptEnabled(true); 
		flash_view.getSettings().setPluginState(PluginState.ON);
		flash_view.setWebChromeClient(new WebChromeClient()); 
		flash_view.getSettings().setAllowFileAccess(true);
		flash_view.getSettings().setPluginsEnabled(true);
		flash_view.getSettings().setSupportZoom(true);
		flash_view.getSettings().setAppCacheEnabled(true);

然後就可以通過java來控制flash的播放了:

	public void start(){
		if(null != flashPath){
			flash_view.loadUrl("javascript:loadSWF(\""+flashPath+"\", \"" + width + "\", \"" + (height-bottom_height) + "\")");
			flash_view.loadUrl("javascript:Play()");
			handler.post(update_progress);
			play.setImageResource(R.drawable.pause);
			playing = true;
		}
		show();
	}
	
	public void pause(){
		if(null != flashPath){
			flash_view.loadUrl("javascript:Pause()");
			handler.removeCallbacks(update_progress);
			play.setImageResource(R.drawable.play);
			playing = false;
		}
	}

整體來看一下,是不是覺得很簡單呢?那就馬上試試吧!

Android播放flash的示例源碼下載地址:http://download.csdn.net/detail/iloveyoueveryday/6911903 。


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved