zoukankan      html  css  js  c++  java
  • 简要介绍如何集成Vitamio安卓版SDK

    1.下载VitamioBundle的最新稳定,这里下载的是最新版4.2.2。


    2.解压缩后,导入 Vitamio 库工程(即vitamio)和Demo工程(即vitamio--sample)到 Eclipse,详细步骤如下图。


    步骤:通过File -> Import -> Android -> Existing Android Code Into Workspace来导入工程,然后修改一下相应的工程名称(也可以不修改)。


    3.如果出现下面图示的错误,是因为Vitamio库项目需要使用SDK API 17(即Android 4.2.2)编译,使用Android SDK Manager下载相应版本再导入即可。

    4.若要在自己的新建的工程中引入Vitamio库,可按照以下步骤执行:

        1)参照上面的步骤,导入Vitamio库工程(即vitamio)到Eclipse。

        2)将Vitamio库工程作为Android Library引入自己的新建使用即可,如图:


    3)在需要播放视频的Activity的onCreate方法中载入解码器的lib:

       public void onCreate(Bundle icicle) {
          super.onCreate(icicle);
          if (!LibsChecker.checkVitamioLibs(this))
          return;
           //其他代码...
          }

    4)在 AndroidManifest.xml 中声明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" />

    5)开始使用Vitamio的API。

    5.API使用

    Vitamio的API与Android原生的API十分相似,主要是MediaPlayer和VideoView的使用。

        1)MediaPlayer主要API,详细用法请看测试DEMO:

    在布局文件中添加SurfaceView,视频显示在SurfaceView上。

      <SurfaceView
                        android:id="@+id/surface"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center" >
     </SurfaceView>

    Java代码中的API使用:

     //获得SurfaceView
            mPreview = (SurfaceView) findViewById(R.id.surface);
            //获取SurfaceView的SurfaceHolder
            holder = mPreview.getHolder();
            holder.addCallback(this);
              
            //创建一个MediaPlayer,并设置监听器
            mMediaPlayer = new MediaPlayer(this);
            //设置资源路径
            mMediaPlayer.setDataSource(path);
            //设置SurfaceHolder
            mMediaPlayer.setDisplay(holder);
            mMediaPlayer.prepareAsync();
            mMediaPlayer.setOnBufferingUpdateListener(this);
            mMediaPlayer.setOnCompletionListener(this);
            mMediaPlayer.setOnPreparedListener(this);
            mMediaPlayer.setOnVideoSizeChangedListener(this);
            setVolumeControlStream(AudioManager.STREAM_MUSIC);

    2)VideoView主要API使用,详细用法请看测试DEMO:

    在布局文件中增加VideoView:

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

    Java代码的API调用:

    //载入解码库
            if (!LibsChecker.checkVitamioLibs(this))
            return;
            mVideoView = (VideoView) findViewById(R.id.surface_view);
            //为VideoView设置视频路径
            mVideoView.setVideoPath(path);
            //设置是否有播放控制条
            mVideoView.setMediaController(new MediaController(this));
            mVideoView.requestFocus();
              
            mVideoView.setOnPreparedListener(new     MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mediaPlayer) {
            //设置播放速度
            mediaPlayer.setPlaybackSpeed(1.0f);
            }
            });
            }
              
            }
  • 相关阅读:
    redis限流器的设计
    使用HystrixCommand封装http请求
    自定义的最简单的可回调的线程任务CallbackableFeatureTask(模仿google的ListenableFutureTask)
    通用的规则匹配算法(原创)(java+.net)
    redis缓存切面实现(支持缓存key的spel表达式)
    使用join和CountDownLatch来等待线程结束
    shell日常实战练习——通过监视用户登陆找到入侵者
    Nginx web服务器
    nginx——防盗链功能
    nginx 隐藏nginx版本号
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4581221.html
Copyright © 2011-2022 走看看