Android 使用Vitamio实现播放视频(一)

来源:互联网 发布:阿里云盒子怎么看直播 编辑:程序博客网 时间:2024/05/23 19:17

一.准备工作

Vitamio : https://www.vitamio.org/Download/ 这里可以下载到项目的源码以及demo

Vitamio API : https://www.vitamio.org/docs/API/2013/0508/9.html 帮助文档

二.引入library
eclipse : 直接导入项目即可 ,没有什么问题

android studo : 导入时候出了些问题,在此说明一下.
1.我们需要先将vitamio项目中的build.gradle信息更改一下

源文件信息:

apply plugin: 'com.android.library'dependencies {}android {    compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)    buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION    defaultConfig {        minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)        targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)    }    sourceSets {        main {            manifest.srcFile 'AndroidManifest.xml'            java.srcDirs = ['src']            jniLibs.srcDirs = ['libs']            aidl.srcDirs = ['src']            renderscript.srcDirs = ['src']            res.srcDirs = ['res']        }    }}

更改后信息:

apply plugin: 'com.android.library'dependencies {}android {    compileSdkVersion 23    buildToolsVersion "23.0.0"    defaultConfig {        minSdkVersion 14        targetSdkVersion 23    }    sourceSets {        main {            manifest.srcFile 'AndroidManifest.xml'            java.srcDirs = ['src']            jniLibs.srcDirs = ['libs']            aidl.srcDirs = ['src']            renderscript.srcDirs = ['src']            res.srcDirs = ['res']        }    }}

更改的有这几个地方

//值参考你项目中的build.gradle即可    compileSdkVersion 23    buildToolsVersion "23.0.0"    defaultConfig {        minSdkVersion 14        targetSdkVersion 23    }

2.然后正常导入module就可以了.

三.代码部分

1.布局文件
activity_play_video_online.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    tools:context="com.sdsoon.ui.PlayVideoOnlineActivity">    <io.vov.vitamio.widget.VideoView        android:id="@+id/surface_view"        android:layout_width="match_parent"        android:layout_height="match_parent" /></RelativeLayout>

2.activity
PlayVideoOnlineActivity.java

package com.sdsoon.ui;import android.app.Activity;import android.net.Uri;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.Toast;import com.litesuits.android.log.Log;import com.sdsoon.hanguopai.BaseActivity;import com.sdsoon.hanguopai.R;import java.util.Random;import io.vov.vitamio.MediaPlayer;import io.vov.vitamio.Vitamio;import io.vov.vitamio.widget.MediaController;import io.vov.vitamio.widget.VideoView;/** * 使用vitamio播放视频 * @version 1.0.0 * @author 桑博 */public class PlayVideoOnlineActivity extends Activity {    private VideoView mVideoView;    private String[] video = {            "http://dlqncdn.miaopai.com/stream/MVaux41A4lkuWloBbGUGaQ__.mp4",            "http://movie.ks.js.cn/flv/other/2014/06/20-2.flv",            "http://movie.ks.js.cn/flv/other/1_0.mp4"    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        Vitamio.isInitialized(this);        setContentView(R.layout.activity_play_video_online);//        m_actionBar.hide();        playfunction();    }    void playfunction(){        String path = "";        path = video[new Random().nextInt(video.length)];        if (path == "") {            Toast.makeText(this, "请填写视频的URL", Toast.LENGTH_LONG).show();            return;        }        mVideoView = (VideoView) findViewById(R.id.surface_view);        mVideoView.setVideoPath(path);   //设置视频网络地址//      mVideoView.setVideoURI(Uri.parse(path)); //也可以是本地,也可以是网络地址        mVideoView.setMediaController(new MediaController(this)); //设置媒体控制器        mVideoView.setVideoLayout(VideoView.VIDEO_LAYOUT_STRETCH, 0);   //设置视频的缩放参数,这里设置为拉伸        mVideoView.requestFocus();        //视频播放器的准备,此时播放器已经准备好了,此处可以设置一下播放速度,播放位置等等        mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {            @Override            public void onPrepared(MediaPlayer mediaPlayer) {                //此处设置播放速度为正常速度1                mediaPlayer.setPlaybackSpeed(1.0f);            }        });        //当播放完成后,从头开始        mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {            @Override            public void onCompletion(MediaPlayer mediaPlayer) {                mediaPlayer.seekTo(0);   //转到第一帧                mediaPlayer.start();     //开始播放            }        });    }}

这里是对一些方法的讲解.

常量 public static final int VIDEO_LAYOUT_ORIGIN缩放参数,原始画面大小。常量值:0public static final int VIDEO_LAYOUT_SCALE缩放参数,画面全屏。常量值:1public static final int VIDEO_LAYOUT_STRETCH缩放参数,画面拉伸。常量值:2public static final int VIDEO_LAYOUT_ZOOM缩放参数,画面裁剪。常量值:3public void setVideoLayout(int layout, float aspectRatio)设置视频的缩放参数参数layout 缩放参数aspectRation 宽高比,为0将自动检测。public void setVideoPath(String path)设置视频路径。public void setVideoURI(Uri uri)设置视频URI。(可以是网络视频地址)public void setMediaController(MediaController controller)设置媒体控制器。参数controller 媒体控制器,注意是io.vov.vitamio.widget.MediaController。public void setOnPreparedListener(OnPreparedListener l)注册一个回调函数,在视频预处理完成后调用。在视频预处理完成后被调用。此时视频的宽度、高度、宽高比信息已经获取到,此时可调用seekTo让视频从指定位置开始播放。public void setOnCompletionListener(OnCompletionListener l)注册一个回调函数,视频播放完成后调用。更多参考: Vitamio API : https://www.vitamio.org/docs/API/2013/0508/9.html  帮助文档
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孕妇淀粉吃多了怎么办 怀孕初期吃了杏怎么办 如果睡觉吃梨了怎么办 怀孕6个月有点贫血怎么办 怀孕八个多月有点贫血怎么办 生完小孩身体虚怎么办 孩子咳嗽厉害怎么办吃什么药 新生儿三天不拉大便怎么办 胃吃的变大了怎么办 小孩长高长的慢怎么办 小孩长高长得慢怎么办 小孩吃东西不吸收营养怎么办 婴儿长得太快怎么办 2个月婴儿长太快怎么办 孩子脚长得太快怎么办 4个月宝宝缺钙怎么办 2个月宝宝不长肉怎么办 小孩子长得不高怎么办 宝宝误吃蜂蜜了怎么办 有人拿着吃完的东西退货怎么办 婴儿个子长的慢怎么办 儿童长得太快怎么办 宝宝个子长太快怎么办 孩子九个月奶水不够怎么办 小孩起热痱子痒怎么办 媳妇生完小孩奶水出不来怎么办 生完孩子下奶疼怎么办 生完小孩没奶水怎么办 孩子半个月奶水越来越少怎么办 半个月后奶水越来越少怎么办 坐月子半个月奶水越来越少怎么办 孩子七个月奶水越来越少怎么办 生完孩子奶水越来越少怎么办 生完孩子回奶了怎么办 产妇3天没奶水怎么办 产后7天了奶水少怎么办 刚生完小孩没有奶水怎么办 突然就没奶水了怎么办 生完小孩没有奶水怎么办 生完宝宝没有奶怎么办 剖腹产奶涨的疼怎么办