关闭

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

标签: android视频vitamio
2617人阅读 评论(0) 收藏 举报

一.准备工作

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
缩放参数,原始画面大小。
常量值:0

public static final int VIDEO_LAYOUT_SCALE
缩放参数,画面全屏。
常量值:1

public static final int VIDEO_LAYOUT_STRETCH
缩放参数,画面拉伸。
常量值:2

public static final int VIDEO_LAYOUT_ZOOM
缩放参数,画面裁剪。
常量值:3

public 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
1
查看评论

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

Android 使用Vitamio实现播放视频(一),有需要的朋友可以参考下。 一.准备工作 Vitamio : https://www.vitamio.org/Download/这里可以下载到项目的源码以及demo Vitamio API : ...
  • dkqiang
  • dkqiang
  • 2016-09-10 23:56
  • 3019

Android通过MediaPlayer实现播放视频实例

最新想通过MediaPlayer实现播放一个视频,并且SeekBar可拖动的功能,记录下来,以便查阅 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:...
  • hedaogelaoshu
  • hedaogelaoshu
  • 2015-03-16 18:03
  • 1530

Android 使用VDPlayerSDK组件实现播放视频(二)

在上一篇Android 使用VDPlayerSDK组件实现播放视频(一)中介绍了项目的导入,简单的介绍了项目如何导入运行,其实参考作者的demo,就可以简单的制作出一个视频播放器出来。我在这再啰嗦一下把代码拷出来演示一下。1、首先在布局文件中嵌入activity_play_movie_by_vdpl...
  • CutelittleBo
  • CutelittleBo
  • 2016-04-20 12:57
  • 1861

vitamio小试牛刀(2)- 横屏全屏播放,竖屏指定高度

这是关于 vitamio 使用的第二篇小文章,主要实现了如下效果:竖屏的效果,给视频源指定了自己需要的高度:旋转屏幕横屏之后的效果,使视频源充满屏幕:接下来记录一下实现的步骤:1、首先,我们写好布局文件,如下:activity_main.xml<?xml version="1.0&q...
  • Handsonn
  • Handsonn
  • 2017-03-21 02:06
  • 2845

android开发之Vitamio介绍以及常见问题

懒惰,只是为了更好的懒惰!
  • zz1175854992
  • zz1175854992
  • 2015-02-26 17:44
  • 2420

Android万能视频播放器-移植第三方库(vitamio)

我们知道,Android中MediaPlayer和VedioView能够播放视频文件,但是其支持的格式仅限于mp4与3gb。但是视频格式如此之多,我们不可能只要求播放这两种,所以就有了下文。         目前比较出名的第三方库有vitanio与VLC,其中...
  • yinhaide
  • yinhaide
  • 2015-01-16 15:45
  • 5075

Android实时直播,一千行java搞定不依赖jni,延迟0.8至3秒,强悍移动端来袭

在Android高版本中,特别是4.1引入了MediaCodec可以对摄像头的图像进行硬件编码,实现直播。 一般Android推流到服务器,使用ffmpeg居多,也就是软编码,实际上使用Android的硬件编码会有更好的体验。 看了下网上的文章也不少,但是都缺乏一个整体跑通的方案,特别是如何推送的服...
  • winlinvip
  • winlinvip
  • 2015-05-01 21:58
  • 16251

Android平台Stagefright中增加flv/f4v支持及相关原理介绍

Android平台Stagefright框架的文档非常少,以下两篇文章比较好,可以参考一下: http://blogold.chinaunix.net/u1/57901/showart_2423206.html http://blogold.chinaunix.net/u2/61880/show...
  • bonderwu
  • bonderwu
  • 2011-03-19 21:35
  • 11486

Android视频播放实现的三种办法

今天来说一下Android中怎么实现视频播放,我主要说三种: 1.MediaPlayer+SurfaceView; 2.VideoView; 3.Vitamio框架。 1.MediaPlayer+SurfaceView这种方法是基础,后面的两种方法其实就是把这种方法封装了一下,使用起...
  • wozuihaole
  • wozuihaole
  • 2017-03-08 09:46
  • 561

Android 仿今日头条的视频播放控件(几行代码快速实现)

Android 仿今日头条的视频播放控件(几行代码快速实现) 前段时间由于项目需要用到类似于今日头条的视频播放器,实现在线播放,边缓存边播放,当然也可以播放本地文件,如下图: 这里我推荐大家使用的是jie...
  • qiaoshi96_bk
  • qiaoshi96_bk
  • 2017-07-20 17:09
  • 551
    个人资料
    • 访问:47755次
    • 积分:700
    • 等级:
    • 排名:千里之外
    • 原创:22篇
    • 转载:0篇
    • 译文:0篇
    • 评论:14条
    文章分类
    最新评论