美文网首页
万能解码框架简介&集成Vitamio

万能解码框架简介&集成Vitamio

作者: GeekGray | 来源:发表于2018-10-03 19:26 被阅读19次

阅读原文

万能解码框架简介

1.ffmpeg

多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
国内很多手机客户端都是集成这个开源框架

http://www.oschina.net/p/ffmpeg/
http://bbs.chinavideo.org/forum.php

没有Android版本

2.VLC

VLC多媒体播放器(最初命名为VideoLAN客户端)是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影音光盘及各类流式协议。它也能作为unicast或 multicast的流式服务器在IPv4或 IPv6的高速网络连接下使用。它融合了FFmpeg计划的解码器与libdvdcss程序库使其有播放多媒体文件及加密DVD影碟的功能。

官网:http://www.videolan.org/

有Android版本

http://www.videolan.org/vlc/download-android.html

3.Vitamio 万能解码框架,在Android和IOS平台上直接使用。

Vitamio 能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在 Android 与 iOS 上跨平台支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播。

里面封装了ffmpeg

下载Vitamio sdk

下载地址

https://www.vitamio.org/Download/

4.集成Vitamio

4.1,拷贝权限到项目中来

    <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" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

4.2 拷贝InitActivity的,在功能清单文件配置,代码如下:

    <!-- Don't forgot InitActivity -->
        <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" />

4.3,新创建一个Activity名字叫VitamioVideoPlayerActivity

重新创建布局文件activity_vitamio_videoplayer.xml,把布局文件里面的系统的VideoView换成Vitamio的VideoView,导入的包都要换成是Vitamio的

     <io.vov.vitamio.widget.VideoView
        android:id="@+id/surface_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

4.4.需要把VitamioVideoPlayerActivity在功能清单文件里面注册

      <activity android:name=".VitamioVideoPlayerActivity"
            android:configChanges="keyboardHidden|screenSize|orientation"
            android:screenOrientation="landscape"
            android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
            />

4.5,要在加载布局文件之前,初始化解码器

Vitamio.isInitialized(this);

4.6,当系统播放器出错的时候,记得跳转到Vitmaio播放中,并且不要忘记携带数据

    /**
     * 启动Vitamio解码播放器
     * a,把数据按照原样传入VtaimoVideoPlayer播放器
     * b,关闭系统播放器
     */
    private void startVitamioPlayer()
    {
        if(videoview!=null)
        {
            videoview.stopPlayback();
        }
        Intent intent = new Intent(this, VitamioVideoPlayer.class);
        if(mediaItems!=null && mediaItems.size()>0)
        {
            Bundle bundle = new Bundle();
            bundle.putSerializable("videolist",mediaItems);
            intent.putExtras(bundle);
            intent.putExtra("position",position);
        }
        else if(uri!=null)
        {
            intent.setData(uri);
        }
        startActivity(intent);
        finish();//关闭页面
    }

相关文章

网友评论

      本文标题:万能解码框架简介&集成Vitamio

      本文链接:https://www.haomeiwen.com/subject/luctaftx.html