0915Android基础SurfaceView

来源:互联网 发布:淘宝上买腾讯视频会员 编辑:程序博客网 时间:2024/05/16 01:18

SurfaceView

SurfaceView使用步骤

  Mediaplayer主要用于播放音频,因此它没有提供图像输出界面,此时就需要借助于SurfaceView来显示MediaPlayer播放的图像输出。
  步骤

  1. 创建Mediaplayer对象,并让他加载指定的视频文件。
  2. 在界面布局中定义SurfaceView组件,或者在程序中创建SurfaceView主键。并为SurfaceView的SurfaceHolder添加Callback监听器。
  3. 调用MediaPlayer对象的setDisplay(SurfaceHolder sh)将播放的视频图像输出到指定的SurfaceView组件。
  4. 调用MediaPlayer对象的start()、stop()和pause()方法控制视频的播放。

SurfaceView简单实例

  通过一个按钮来播放视频
  权限

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

  布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:paddingBottom="@dimen/activity_vertical_margin"    android:gravity="center"    android:orientation="vertical"    tools:context=".MainActivity">    <Button        android:id="@+id/btn_surface_view"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="播放视频"/>    <SurfaceView        android:id="@+id/surfaceview"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_weight="1"/></LinearLayout>

  主线程

import android.app.Activity;import android.media.AudioManager;import android.media.MediaPlayer;import android.os.Environment;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.SurfaceView;import android.view.View;import android.widget.Button;import java.io.IOException;public class MainActivity extends Activity {    private Button mBtnSurface;    private SurfaceView mSurfaceView;    private MediaPlayer mediaPlayer;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mBtnSurface= (Button) findViewById(R.id.btn_surface_view);        mSurfaceView= (SurfaceView) findViewById(R.id.surfaceview);        mBtnSurface.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if (mediaPlayer == null) {                    mediaPlayer = new MediaPlayer();                }                mediaPlayer.reset();                try {                    mediaPlayer.setDataSource(Environment.getExternalStorageDirectory()+"/DCIM/100MEDIA/VIDEO0001.mp4");//设置需要播放的视频                    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);//设置音频流的编号类型                    mediaPlayer.setDisplay(mSurfaceView.getHolder());//将视频画面输出到SurfaceView                    mediaPlayer.prepare();//准备播放                    mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {                        @Override                        public void onPrepared(MediaPlayer mp) {                            mp.start();//开始播放                        }                    });                } catch (IOException e) {                    e.printStackTrace();                }            }        });    }}
0 0
原创粉丝点击