Android 使用Vitamio实现播放视频(一),有需要的朋友可以参考下。



一.准备工作



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  帮助文档

更多相关文章

  1. android 视频播放器
  2. Unity3D Android播放视频
  3. Android得到视频缩略图
  4. android 如何优雅地给Activity和Fragement传入参数
  5. android图片缩放(指定大小)
  6. 安卓开发-HttpClient使用
  7. android实现视频播放的几种方式
  8. mybatisplus的坑 insert标签insert into select无参数问题的解决
  9. Python技巧匿名函数、回调函数和高阶函数

随机推荐

  1. android webView与js交互
  2. Android(安卓)- ToDoList(fragment) 详解
  3. 更新Android(安卓)SDK, 升级ADT遇到的问
  4. ImageView的属性android:scaleType,即Imag
  5. android wifi状态机原理
  6. android两种方式设置EditText不弹出软键
  7. Android(安卓)TTS 支持中文
  8. android使用滚动视图
  9. android UI跨线程操作
  10. android aosp 下载源代码