⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mediaplayerdemo_video.java

📁 Android的应用实例
💻 JAVA
字号:
package com.example.android.apis.media;import com.example.android.apis.R;import com.example.android.apis.app.AlarmController;import android.app.Activity;import android.graphics.PixelFormat;import android.media.AudioManager;import android.media.MediaPlayer;import android.media.MediaPlayer.OnBufferingUpdateListener;import android.media.MediaPlayer.OnCompletionListener;import android.os.Bundle;import android.util.Log;import android.view.SurfaceHolder;import android.view.SurfaceView;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MediaPlayerDemo_Video extends Activity implements        OnBufferingUpdateListener, OnCompletionListener,        MediaPlayer.OnPreparedListener, SurfaceHolder.Callback {    private static final String TAG = "MediaPlayerDemo";    private int mVideoWidth;    private int mVideoHeight;    private MediaPlayer mMediaPlayer;    private SurfaceView mPreview;    private SurfaceHolder holder;    private String path;    private Bundle extras;    private static final String MEDIA = "media";    private static final int LOCAL_AUDIO = 1;    private static final int STREAM_AUDIO = 2;    private static final int RESOURCES_AUDIO = 3;    private static final int LOCAL_VIDEO = 4;    private static final int STREAM_VIDEO = 5;    /**     *      * Called when the activity is first created.     */    public void onCreate(Bundle icicle) {        super.onCreate(icicle);        setContentView(R.layout.mediaplayer_2);        mPreview = (SurfaceView) findViewById(R.id.surface);        holder = mPreview.getHolder();        holder.addCallback(this);        holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);        extras = getIntent().getExtras();    }    private void playVideo(Integer Media) {        try {            switch (Media) {                case LOCAL_VIDEO:                    /*                     * TODO: Set the path variable to a local media file path.                     */                    path = "";                    if (path == "") {                        // Tell the user to provide a media file URL.                        Toast                                .makeText(                                        MediaPlayerDemo_Video.this,                                        "Please edit MediaPlayerDemo_Video Activity, "                                                + "and set the path variable to your media file path."                                                + " Your media file must be stored on sdcard.",                                        Toast.LENGTH_LONG).show();                    }                    break;                case STREAM_VIDEO:                    /*                     * TODO: Set path variable to progressive streamable mp4 or                     * 3gpp format URL. Http protocol should be used.                     * Mediaplayer can only play "progressive streamable                     * contents" which basically means: 1. the movie atom has to                     * precede all the media data atoms. 2. The clip has to be                     * reasonably interleaved.                     *                      */                    path = "";                    if (path == "") {                        // Tell the user to provide a media file URL.                        Toast                                .makeText(                                        MediaPlayerDemo_Video.this,                                        "Please edit MediaPlayerDemo_Video Activity,"                                                + " and set the path variable to your media file URL.",                                        Toast.LENGTH_LONG).show();                    }                    break;            }            // Create a new media player and set the listeners            mMediaPlayer = new MediaPlayer();            mMediaPlayer.setDataSource(path);            mMediaPlayer.setDisplay(holder);            mMediaPlayer.prepare();            mMediaPlayer.setOnBufferingUpdateListener(this);            mMediaPlayer.setOnCompletionListener(this);            mMediaPlayer.setOnPreparedListener(this);            mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);        } catch (Exception e) {            Log.e(TAG, "error: " + e.getMessage(), e);        }    }    public void onBufferingUpdate(MediaPlayer arg0, int percent) {        Log.d(TAG, "onBufferingUpdate percent:" + percent);    }    public void onCompletion(MediaPlayer arg0) {        Log.d(TAG, "onCompletion called");    }    public void onPrepared(MediaPlayer mediaplayer) {        Log.d(TAG, "onPrepared called");        mVideoWidth = mMediaPlayer.getVideoWidth();        mVideoHeight = mMediaPlayer.getVideoHeight();        if (mVideoWidth != 0 && mVideoHeight != 0) {            holder.setFixedSize(mVideoWidth, mVideoHeight);            mMediaPlayer.start();        }    }    public void surfaceChanged(SurfaceHolder surfaceholder, int i, int j, int k) {        Log.d(TAG, "surfaceChanged called");    }    public void surfaceDestroyed(SurfaceHolder surfaceholder) {        Log.d(TAG, "surfaceDestroyed called");    }    public void surfaceCreated(SurfaceHolder holder) {        // TODO Auto-generated method stub        Log.d(TAG, "surfaceCreated called");        playVideo(extras.getInt(MEDIA));    }    @Override    protected void onDestroy() {        super.onDestroy();        // TODO Auto-generated method stub        if (mMediaPlayer != null) {            mMediaPlayer.release();            mMediaPlayer = null;        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -