android开发视频播放器------Vitamio 播放页实例

来源:互联网 发布:网络购物的发展历程 编辑:程序博客网 时间:2024/05/23 11:48

增加功能------

1.媒体控制

2.显示模式

3.全屏播放

布局代码:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:background="#000" >    <io.vov.vitamio.widget.VideoView        android:id="@+id/surface_view"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_centerHorizontal="true"        android:layout_centerVertical="true" />    <Button         android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentRight="true"        android:background="@drawable/mediacontroller_sreen_size_100"        android:onClick="changeLayout"/>    <LinearLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerInParent="true" >        <ProgressBar            android:id="@+id/progressbar"            style="?android:attr/progressBarStyleLarge"            android:layout_width="wrap_content"            android:layout_height="wrap_content" />        <TextView            android:id="@+id/download_rate"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="center"            android:text="" />        <TextView            android:id="@+id/load_rate"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="center"            android:text="" />    </LinearLayout></RelativeLayout>

java代码:

package com.renaikx.vitamioplayer;import io.vov.vitamio.LibsChecker;import io.vov.vitamio.MediaPlayer;import io.vov.vitamio.MediaPlayer.OnBufferingUpdateListener;import io.vov.vitamio.MediaPlayer.OnInfoListener;import io.vov.vitamio.MediaPlayer.OnPreparedListener;import io.vov.vitamio.widget.MediaController;import io.vov.vitamio.widget.VideoView;import android.os.Bundle;import android.app.Activity;import android.text.TextUtils;import android.view.Menu;import android.view.View;import android.view.Window;import android.view.WindowManager;import android.widget.Button;import android.widget.EditText;import android.widget.ProgressBar;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity implements OnInfoListener,OnBufferingUpdateListener {// private EditText et_url;private Button start;private VideoView videoView;private String path = "http://10.2.9.1/Uploads/vod/bb.mp4";private ProgressBar progressbar;private TextView download_rate;private TextView load_rate;private int videoLayout = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 去掉标题栏requestWindowFeature(Window.FEATURE_NO_TITLE);// 全屏显示getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView(R.layout.videoview);// et_url = (EditText) findViewById(R.id.et_url);// start = (Button) findViewById(R.id.start);videoView = (VideoView) findViewById(R.id.surface_view);progressbar = (ProgressBar) findViewById(R.id.progressbar);download_rate = (TextView) findViewById(R.id.download_rate);load_rate = (TextView) findViewById(R.id.load_rate);if (!LibsChecker.checkVitamioLibs(this))return;if (path == "") {Toast.makeText(this, "请输入路径", 0).show();return;} else {// 给播放视图设置播放路径videoView.setVideoPath(path);// 设置控制器videoView.setMediaController(new MediaController(MainActivity.this));// 让控件获得焦点videoView.requestFocus();videoView.setOnInfoListener(this);videoView.setOnBufferingUpdateListener(this);videoView.setOnPreparedListener(new OnPreparedListener() {@Overridepublic void onPrepared(MediaPlayer mp) {// TODO Auto-generated method stub// 设置视频或者音频播放速度default to 1.0,mp.setPlaybackSpeed(1.0f);//设置显示选项videoView.setVideoLayout(VideoView.VIDEO_LAYOUT_SCALE, 0);}});}}public void startPlay(View v) {String url = "http://10.2.9.1/Uploads/vod/bb.mp4";path = url;if (!TextUtils.isEmpty(url)) {videoView.setVideoPath(url);}}public void openVideo(View v) {videoView.setVideoPath(path);}// 更新媒体流缓冲状态,@Overridepublic void onBufferingUpdate(MediaPlayer mp, int percent) {// TODO Auto-generated method stubload_rate.setText(percent + "%");}// Called to indicate an info or a warning.@Overridepublic boolean onInfo(MediaPlayer mp, int what, int extra) {// TODO Auto-generated method stubswitch (what) {case MediaPlayer.MEDIA_INFO_BUFFERING_START:if (videoView.isPlaying()) {videoView.pause();progressbar.setVisibility(View.VISIBLE);download_rate.setText("");load_rate.setText("");download_rate.setVisibility(View.VISIBLE);load_rate.setVisibility(View.VISIBLE);}break;case MediaPlayer.MEDIA_INFO_BUFFERING_END:videoView.start();progressbar.setVisibility(View.GONE);download_rate.setVisibility(View.GONE);load_rate.setVisibility(View.GONE);case MediaPlayer.MEDIA_INFO_DOWNLOAD_RATE_CHANGED:download_rate.setText(extra + "kb/s   ");}return true;}public void changeLayout(View v) {videoLayout++;if (videoLayout == 4) {videoLayout = 0;}switch (videoLayout) {case 0:videoLayout = VideoView.VIDEO_LAYOUT_ORIGIN;v.setBackgroundResource(R.drawable.mediacontroller_sreen_size_100);break;case 1:videoLayout = VideoView.VIDEO_LAYOUT_SCALE;v.setBackgroundResource(R.drawable.mediacontroller_screen_fit);break;case 2:videoLayout = VideoView.VIDEO_LAYOUT_STRETCH;v.setBackgroundResource(R.drawable.mediacontroller_screen_size);break;case 3:videoLayout = VideoView.VIDEO_LAYOUT_ZOOM;v.setBackgroundResource(R.drawable.mediacontroller_sreen_size_crop);break;}videoView.setVideoLayout(videoLayout, 0);}}

权限配置:

 <uses-permission android:name="android.permission.WAKE_LOCK" />    <uses-permission android:name="android.permission.INTERNET" />    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />



0 0
原创粉丝点击