毕设系列—客户端:Vitamio框架开发(1)初次安装及配置

2023-10-25 08:32

本文主要是介绍毕设系列—客户端:Vitamio框架开发(1)初次安装及配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Android使用Vitamio播放视频,网上的资源都太旧了,没有最新版的新手教程,而且使用的还是Andorid Studio2.0,自己查,心好累……

准备工作

IDE : Andorid Studio 2.0
Vitamio SDK : Vitamio 5.0.1
帮助文档 : API

引入library

Android Studo 2.0 : 导入时候出了些问题,这一块简直太恶心了,网上的教程都没有,自己折腾了两天……

步骤1:AS2.0新建一个项目,命名为Vitamio_Demo

步骤2:下载 Vitamio 5.0.1到本地

步骤3:解压该文件,将其中vitamio项目中的build.gradle信息更改一下

VitamioBundle

vitamio

查看之前新建Vitamio_Demo的 build.gradle(Module:app)
build.gradle(Module:app)

修改的文件信息

apply plugin: 'com.android.library'dependencies {
}android {compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSIONdefaultConfig {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 23buildToolsVersion "23.0.3"defaultConfig {minSdkVersion 15targetSdkVersion 23}sourceSets {main {manifest.srcFile 'AndroidManifest.xml'java.srcDirs = ['src']jniLibs.srcDirs = ['libs']aidl.srcDirs = ['src']renderscript.srcDirs = ['src']res.srcDirs = ['res']}}}
步骤4:正常导入module即可

1、File->New->import module

2、选择刚才解压文件夹下修改过的 vitamio 文件 等待 Gradle编译完成
3、打开Vitamio_Demo 的build.gradle 在 dependencies 中添加 compile project(‘:vitamio’) 如果你导入module中更改过名字的话 要改成修改后的名字 如图:
添加compile project(':vitamio')

4、再次等待 Gradle编译完成 然后打开 AndroidManifest.xml权限文件添加视频播放的Activity声明,以及权限的添加

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.vitamio_demo"><uses-permission android:name="android.permission.WAKE_LOCK" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><application
        android:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activity
            android:name="io.vov.vitamio.activity.InitActivity"android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation"android:launchMode="singleTop"android:theme="@android:style/Theme.NoTitleBar"android:windowSoftInputMode="stateAlwaysHidden" /></application></manifest>

至此, Vitamio 导入完成,之下可以使用

代码部分

布局文件:activity_video_play.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.vitamio_demo.MainActivity"><io.vov.vitamio.widget.VideoView
    android:id="@+id/surface_view"android:layout_width="match_parent"android:layout_height="match_parent" /></RelativeLayout>

MainActivity

package com.vitamio_demo;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.app.Activity;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;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;public class MainActivity 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"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Vitamio.isInitialized(this);setContentView(R.layout.activity_main);
//        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() {@Overridepublic void onPrepared(MediaPlayer mediaPlayer) {//此处设置播放速度为正常速度1mediaPlayer.setPlaybackSpeed(1.0f);}});//当播放完成后,从头开始mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {@Overridepublic void onCompletion(MediaPlayer mediaPlayer) {mediaPlayer.seekTo(0);   //转到第一帧mediaPlayer.start();     //开始播放}});}
}

相关API介绍

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

Tip : 模拟器太卡,建议真机调试~~~

运行播放界面
真机运行播放界面

原创:毕设系列—客户端:Vitamio框架开发(1)初次安装及配置

这篇关于毕设系列—客户端:Vitamio框架开发(1)初次安装及配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/281329

相关文章

一文详解如何查看本地MySQL的安装路径

《一文详解如何查看本地MySQL的安装路径》本地安装MySQL对于初学者或者开发人员来说是一项基础技能,但在安装过程中可能会遇到各种问题,:本文主要介绍如何查看本地MySQL安装路径的相关资料,需... 目录1. 如何查看本地mysql的安装路径1.1. 方法1:通过查询本地服务1.2. 方法2:通过MyS

电脑软件不能安装到C盘? 真相颠覆你的认知!

《电脑软件不能安装到C盘?真相颠覆你的认知!》很多人习惯把软件装到D盘、E盘,刻意绕开C盘,这种习惯从哪来?让我们用数据和案例,拆解背后的3大原因... 我身边不少朋友,在使用电脑安装软件的时候,总是习惯性的把软件安装到D盘或者E盘等位置,刻意避开C盘。如果你也有这样的习惯,或者不明白为什么要这么做,那么我

SpringBoot中HTTP连接池的配置与优化

《SpringBoot中HTTP连接池的配置与优化》这篇文章主要为大家详细介绍了SpringBoot中HTTP连接池的配置与优化的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、HTTP连接池的核心价值二、Spring Boot集成方案方案1:Apache HttpCl

Maven 插件配置分层架构深度解析

《Maven插件配置分层架构深度解析》:本文主要介绍Maven插件配置分层架构深度解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Maven 插件配置分层架构深度解析引言:当构建逻辑遇上复杂配置第一章 Maven插件配置的三重境界1.1 插件配置的拓扑

ubuntu20.0.4系统中安装Anaconda的超详细图文教程

《ubuntu20.0.4系统中安装Anaconda的超详细图文教程》:本文主要介绍了在Ubuntu系统中如何下载和安装Anaconda,提供了两种方法,详细内容请阅读本文,希望能对你有所帮助... 本文介绍了在Ubuntu系统中如何下载和安装Anaconda。提供了两种方法,包括通过网页手动下载和使用wg

Spring Boot集成Logback终极指南之从基础到高级配置实战指南

《SpringBoot集成Logback终极指南之从基础到高级配置实战指南》Logback是一个可靠、通用且快速的Java日志框架,作为Log4j的继承者,由Log4j创始人设计,:本文主要介绍... 目录一、Logback简介与Spring Boot集成基础1.1 Logback是什么?1.2 Sprin

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

如何在Ubuntu上安装NVIDIA显卡驱动? Ubuntu安装英伟达显卡驱动教程

《如何在Ubuntu上安装NVIDIA显卡驱动?Ubuntu安装英伟达显卡驱动教程》Windows系统不同,Linux系统通常不会自动安装专有显卡驱动,今天我们就来看看Ubuntu系统安装英伟达显卡... 对于使用NVIDIA显卡的Ubuntu用户来说,正确安装显卡驱动是获得最佳图形性能的关键。与Windo

ubuntu16.04如何部署dify? 在Linux上安装部署Dify的技巧

《ubuntu16.04如何部署dify?在Linux上安装部署Dify的技巧》随着云计算和容器技术的快速发展,Docker已经成为现代软件开发和部署的重要工具之一,Dify作为一款优秀的云原生应用... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。它

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程