在线播放,将文件转成流媒体
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 }