android3种播放视频方式,Android 两种方式播放视频

主MainActivity的布局配置文件

这是activity_main.xml。主要出现两个按钮,按钮一通过mediaplayer播放,按钮二通过videoview播放

xmlns:tools="外链网址已屏蔽"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context="com.shao.MainActivity" >

android:id="@+id/btnSurfaceView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Start SurfaceView" />

android:id="@+id/btnVideoView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Start VideoView" />

主Activity。用于控制两个按钮,设置布局

package com.shao;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

public class MainActivity extends Activity {

public Button btnSurfaceView;

public Button btnVideoView;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

this.btnSurfaceView = (Button) findViewById(R.id.btnSurfaceView);

this.btnVideoView = (Button) findViewById(R.id.btnVideoView);

this.btnSurfaceView.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

Intent intent = new Intent(MainActivity.this, SurfaceViewActivity.class);

startActivity(intent);

}

});

this.btnVideoView.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

Intent intent = new Intent(MainActivity.this, VideoViewActivity.class);

startActivity(intent);

}

});

}

}

1、通过MediaPlayer

package com.shao;

import android.app.Activity;

import android.media.MediaPlayer;

import android.os.Bundle;

import android.view.SurfaceHolder;

import android.view.SurfaceHolder.Callback;

import android.view.SurfaceView;

public class SurfaceViewActivity extends Activity {

private SurfaceView surfaceView;

private SurfaceHolder surfaceHolder;

private Callback SurfaceHolderCallbac = new Callback() {

private MediaPlayer mediaPlay;

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

mediaPlay.release();

}

@Override

public void surfaceCreated(SurfaceHolder holder) {

mediaPlay = MediaPlayer.create(SurfaceViewActivity.this, R.raw.jikexueyuan);

try {

mediaPlay.prepare();

} catch(Exception e) {

e.printStackTrace();

}

mediaPlay.setDisplay(surfaceHolder);

mediaPlay.start();

}

@Override

public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

}

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

surfaceView = new SurfaceView(this);

surfaceHolder = surfaceView.getHolder();

surfaceHolder.addCallback(SurfaceHolderCallbac);

setContentView(surfaceView);

}

}

需要实例CallBack属性,并且覆盖里面的方法。主要的内容还是在onCreate里面,addCallback加入了这个SurfaceHolderCallbac。

2、通过VideoView

package com.shao;

import android.app.Activity;

import android.os.Bundle;

import android.widget.MediaController;

import android.widget.VideoView;

public class VideoViewActivity extends Activity {

public VideoView videoView;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

videoView = new VideoView(this);

videoView.setVideoPath("/storage/sdcard1/jikexueyuan.mp4");

videoView.setMediaController(new MediaController(this));

videoView.start();

setContentView(videoView);

}

}

没啥好注意的,就是把这个VideoView 设置了setContentView里面。然后调用了一个setMediaController,这是一个系统自带的播放控制组件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值