在線播放,將文件轉成流媒體
1.Android支持視頻播放,但是要在線直接播放視頻是不能直接請求.mp4等視頻格式的,因為這些格式不支持漸進播放,所以我們就需要將文件轉換成流媒體文件,這里我使用的是QuickTimeInstaller.ext來完成轉換的,需要注冊碼網上有免費的,需要的話就搜索吧,另外蘋果的軟件注冊碼的位置跟windows的習慣不一樣,通常我們都是在幫助里面找到注冊信息,但是蘋果放在了編輯--偏好設置里,注冊后以后重新開啟就可以了
2.將文件拖入框內,(可能反應比較慢)然后點擊文件----導出,選擇格式3G,進行設置
文件格式:3GPP
視頻格式:MPEG-4
數據速率128 千位/秒 (數字高低與畫質成正比,與下載速度成正比)
優化:下載
幀率:15
圖像大小:根據需求設定吧
關鍵幀:每 24 幀
然后采用URL地址請求 就可以直接播放了
大體代碼如下(本代碼未做任何優化只是簡單實現,根據個人需求在做更改吧)
1 import android.app.Activity; 2 import android.media.AudioManager; 3 import android.media.MediaPlayer; 4 import android.os.Bundle; 5 import android.view.SurfaceHolder; 6 import android.view.SurfaceView; 7 public class VideoActivity extends Activity{ 8 private SurfaceView sv; 9 private SurfaceHolder holder; 10 private String link; private MediaPlayer player; 11 @Override 12 protected void onCreate(Bundle savedInstanceState){ 13 super.onCreate(savedInstanceState); 14 setContentView(R.layout.video); 15 sv=(SurfaceView)findViewById(R.id.sv); 16 holder=sv.getHolder(); 17 holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 18 link=getIntent().getStringExtra("link");//這里代表URL路徑 隨意更改 19 holder.addCallback(new Callback(){ 20 public void surfaceDestroyed(SurfaceHolder holder){ 21 if(player!=null){ 22 player.stop(); 23 player.release(); 24 player=null; 25 } 26 } 27 public void surfaceCreated(SurfaceHolder holder){ 28 System.out.println("link:"+link); 29 if(link!=null){ 30 try{ 31 player=new MediaPlayer(); 32 player.setAudioStreamType(AudioManager.STREAM_MUSIC); 33 player.setDataSource(link); 34 player.setDisplay(holder); 35 player.prepare(); 36 player.start(); 37 }catch(Exception e){ 38 e.printStackTrace(); 39 } 40 } 41 } 42 public void surfaceChanged(SurfaceHolder holder,int format,int width,int height){ 43 } 44 } 45 }

浙公網安備 33010602011771號