视频播放三:Vitamio

本文介绍Vitamio多媒体播放器的集成方法及其优势。Vitamio支持多种视频格式及流媒体协议,如720P/1080P MKV、FLV、MP4等,并能在Android与iOS上跨平台播放MMS、RTSP、RTMP等协议。文章详细讲解了如何将Vitamio集成到Android项目中,包括模块创建、依赖添加及初始化步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

demo的GitHub地址

参考:Android Vitamio的使用解析

简介

vatamio:读音:维他米欧

Vitamio能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,

还可以在Android 与 iOS 上跨平台支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播。

使用Vitamio框架主要是它能够播放足够多的视频格式(称万能播放器),而android系统的播放器只能mp4,3gp,.m3u8这几种格式。

集成

Android如何集成Vitamio
Android视频播放实现的三种办法

导入vitamio

Vitamio官网
Vitamio github

从官网或者GitHub上下载项目,目录如下:
这里写图片描述

这里写图片描述

建立vitamio module,把src、res、AndroidManifest、lib文件夹拷贝进去,

因为so文件在lib文件夹,所以module的build.gradle添加:

android{

    sourceSets {
        main {
            //so文件放在libs时才使用
            jniLibs.srcDirs = ['libs']
        }
    }

}

注意:完成后app module添加vitamio的模块依赖。

初始化:

//一定要初始化
Vitamio.initialize(this);

布局:

 <io.vov.vitamio.widget.VideoView
        android:id="@+id/video1"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:layout_marginTop="10dp" />

代码:

注意导包来自vitamio包。

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import io.vov.vitamio.MediaPlayer;//
import io.vov.vitamio.Vitamio;//
import io.vov.vitamio.widget.MediaController;
import io.vov.vitamio.widget.VideoView;//


public class Main3Activity extends Activity 
                        implements MediaPlayer.OnPreparedListener, 
                                   MediaPlayer.OnErrorListener, 
                                   MediaPlayer.OnCompletionListener {

    private VideoView video;
    private Button btn;
    private EditText et;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);

        //一定要初始化
        Vitamio.initialize(this);

        initView();
    }

    private void initView() {
        video = (VideoView) findViewById(R.id.video1);
        btn = (Button) findViewById(R.id.btn1);
        et = (EditText) findViewById(R.id.et2);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String path = Environment.getExternalStorageDirectory().getPath() + "/" +
                        et.getText().toString();
                Log.e("Main3Activity", "path====" + path);
                Uri uri = Uri.parse(path);
                video.setVideoURI(uri);
                video.setMediaController(new MediaController(Main3Activity.this));

                //设置监听
                video.setOnPreparedListener(Main3Activity.this);
                video.setOnErrorListener(Main3Activity.this);
                video.setOnCompletionListener(Main3Activity.this);
            }
        });
    }

    @Override
    public void onPrepared(MediaPlayer mp) {
        video.start();
        Log.e("Main3Activity", "====onPrepared====");
    }

    @Override
    public void onCompletion(MediaPlayer mp) {
        Log.e("Main3Activity", "====onCompletion====");
    }

    @Override
    public boolean onError(MediaPlayer mp, int what, int extra) {
        Log.e("Main3Activity", "====onError====");
        return false;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值