教你制作簡易手機視頻播放器--核心原理


不到一百行代碼,教你制作一個手機視頻播放器!這里我們使用系統自帶的api來制作一個簡易視頻播放器,實現控制的功能,能夠監聽到視頻准備狀態,視頻播放完成狀態,還有視頻播放錯誤狀態,就這么多行代碼就可以制作出來一個簡易播放器,大家快來試試吧!

    程序員的最好交流就是看代碼,所以廢話不多說,代碼大家一看都懂!保存下來,互相學習

效果如下,這是播放的網上的一段視頻,效果大家可以看一下效果,文章寫的倉促,也沒有設置橫屏效果,將就着看吧:

image

1.首先是布局文件,使用VideoView控件

<VideoView 
        android:id="@+id/vv"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        />

 

2.在清單文件中加入如下的過濾器

<intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <data android:mimeType="video/*" android:scheme="http" />
                <data android:mimeType="video/*" android:scheme="file" />
                <data android:mimeType="audio/*" android:scheme="http" />
                <data android:mimeType="audio/*" android:scheme="file" />
                <category android:name="android.intent.category.DEFAULT" />

 

3.直接上核心代碼

import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.Intent;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnErrorListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;

public class AndyePlay extends Activity {

    private VideoView vv;
    private Uri uri;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        vv = (VideoView) findViewById(R.id.vv);
        
        Intent dIntent=getIntent();
        //獲得意圖,並獲得數據
        if(dIntent !=null){
            //把地址取出來
            uri = dIntent.getData();
            //也可以指定地址
            //uri =Uri.parse("file:///sdcard/%E7%8F%A0%E5%B8%9.mp4");
            if(uri !=null){
                vv.setVideoURI(uri);
            }
        }
        
        //開始准備
        vv.setOnPreparedListener(new OnPreparedListener() {
            
            @Override
            public void onPrepared(MediaPlayer mp) {
                
                AlertDialog.Builder builder=new Builder(getApplicationContext());
                builder.setMessage(R.string.message);
                vv.start();
            }
        });
        //錯誤監聽器
        vv.setOnErrorListener(new OnErrorListener() {
            
            @Override
            public boolean onError(MediaPlayer mp, int what, int extra) {
                // TODO Auto-generated method stub
                Toast.makeText(getApplicationContext(), "播放錯誤", 0).show();
                return false;
            }
        });
        //播放完成監聽
        vv.setOnCompletionListener(new OnCompletionListener() {
            
            @Override
            public void onCompletion(MediaPlayer mp) {
                // TODO Auto-generated method stub
                Toast.makeText(getApplicationContext(), "視頻播放完了哦", 0).show();
            }
        });
        
        //獲得系統的控制面板
        vv.setMediaController(new MediaController(AndyePlay.this));
    }
    
    
    
    
    

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM