当前位置: 移动技术网 > IT编程>移动开发>Android > Android 开发音频组件(Vitamio FAQ)详细介绍

Android 开发音频组件(Vitamio FAQ)详细介绍

2019年07月24日  | 移动技术网IT编程  | 我要评论

猴山条约,新生儿奶粉哪个好,孝心故事

 一、vitamio介绍

  1.1 vitamio是什么?

   vitamio是android平台视音频播放组件,支持播放几乎格式的视频以及主流网络视频流(http/rtsp/mms等),详细的中文介绍: 这里。

   vitamio官网:http://vitamio.org/

   vitamio微博:http://weibo.com/vitamio 

   vplayer官网:http://vplayer.net

   vitamio豆瓣:http://site.douban.com/145815/

  1.2 关于vitamio的名字(摘自豆瓣官网)

   vitamio 来源于英文单词vitamin(维他命),希望vitamio对于安卓多媒体开发者的重要性,就像vitmain之于人体一样不可缺少。 

   the name of vitamio comes from vitamin, we hope the importance of vitamio for android multimedia developers as indispensable as vitamin for human.

  1.3 关于vitamio的由来(摘自豆瓣官网)

   我们是一拨葱名勤劳的coder,我们憎恶烦冗的android多媒体程序开发,从版本升级到不同设 备,刚坑娘的测试完三星,htc,sony,操,又拿来了v880;我们认为这些讨厌的玩意注定会让我们的生活变得愚蠢,新技术神马的也是没有时间去研究 ,最令人发指的是不能专注于实现自己的创意app。

   经常沉溺于拯救世界的精神世界,平凡的coder也能变奇葩。作为最早研究android媒体工具的团队,我们决定把我们的vitamio框架免费出去,助力安卓多媒体开发者实现自己的创意梦想 :d, 各位少年,我们是来自中国的高品质多媒体框架噢。

   第一版发布日期:2011年9月发布

  1.4 vitamio相关数据

   从2011年9月发布至今,用户下载量超过2000w,使用vitamio的开发者超过1500位,使用过vitamio产品有

   国内:搜狐视频,91熊猫影音(网龙),海底捞,歌华有限 等  

   国外:pak tv global,madani channel,deen tv,mytrans,fplayer,animeftw.tv,radio nepali,gnc livewell,magictv streaming player free,hispan tv mobile,tv italy等

  1.5 vitamio有什么优点?

   a). 强大。支持超多格式视频和网络视频播放。(不强大免费也没用,所以排在第一位)

   b). 个人免费。(但企业使用需要购买授权

    (google play上已有多款基于vitamio的收费播放器,大家可以在里面搜索vitamio关键字)

   c). 无缝集成。仅将vitamio的library工程引入即可使用,无需另外下载安装解码包(vitamio的上一个版本是需要单独下载安装解码包)。

   d). 使用简单。调用非常简单,方便使用。

   e). 自由定制。播放界面的代码已完全开放,方便自定义播放界面、进度条等。

   d). 持续更新。2012-7-9已发布新一版的内测版本,预计8月初能发布下一个版本。

   e). 服务跟进。vitamio官方qq群(171570336),提供开发者交流和讨论。论坛还在开发中。

  1.6 vitamio背后的团队

   vitamio与vplayer属同一个团队、同一个公司(yixia.com)。我们在北京,目前团队有5名成员,4名开发,1名设计师,以开发vplayer为主,vitamio为辅 :)

  1.7 vitamio与vplayer什么关系?

   vplayer基于vitamio开发,所以vplayer能播放的vitamio也能。

   oplayer基于vitamio开发,作为推广vitamio的使用例子和示范产品,完全开放源代码。虽是业余之作,仍以正式发布到市场为目标。

  1.8 vitamio与ffmpeg

   ffmpeg提供软件解码器和多路输出(demuxers)。vitamio使用lgplv2.1许可下ffmpeg的代码,代码可以从这里下载。

   https://bitbucket.org/abitno/ffmpegandroid

 二、vitamio下载和运行

  2.1 下载

   vitamio 3.0下载。(2012-10-23更新)

   oplayer 3.0下载。(2012-10-24更新,没有taocode账户的请注册一个)

  2.2 运行例子

   解压后两个项目:vitamiobundle和test,其中vitamiobundle是library(关于android library参见这里),运行test例子即可。

注意:

   1). 例子使用api 16,没有安装升级最新android 4.1 会报错,大家设置里降低至api 14(android 4.0) 或api 15(android 4.0.3) 即可。

   2). 工程文件并没有gen文件夹,请大家自行加上。

   3). 先编译vitamiobundle,后编译test。如果仍然有错误,把工程clean一下,依次再编译一下。

   4). 修改videoviewdemo视频路径为你要测试的视频路径。注意,本地视频用setvideopath方法,播放网络视频用setvideouri方法。

  2.3 整合例子

   不希望以library的方式引用vitamio,可以直接把vitamiobundle里所有的类、资源拷贝至目标项目。注意src、libs、res目录下的都要拷贝过去,还有androidmanifest.xml中的配置。

   成功整合例子,大家可以看一下oplayer的结构。

  2.4 自定义initactiviy,即正在解压解码包进度条界面。

    这里给出initactivity代码:  

public class initactivity extends activity {
 public static final string from_me = "fromvitamioinitactivity";
 public static final string extra_msg = "extra_msg";
 public static final string extra_file = "extra_file";
 private progressdialog mpd;

 protected void oncreate(bundle savedinstancestate) {
  super.oncreate(savedinstancestate);
  getwindow().addflags(windowmanager.layoutparams.flag_keep_screen_on);

  new asynctask<object, object, object>() {
   protected void onpreexecute() {
    mpd = new progressdialog(initactivity.this);
    mpd.setcancelable(false);
    mpd.setmessage(getstring(getintent().getintextra(extra_msg, r.string.vitamio_init_decoders)));
    mpd.show();
   }

   @override
   protected object doinbackground(object... params) {
    vitamioconnection.initnativelibs(getapplicationcontext(), getintent().getintextra(extra_file, r.raw.libarm), new vitamioconnection.onnativelibsinitedlistener() {
     @override
     public void onnativelibsinitcompleted(string libpath) {
      log.d("native libs inited at " + libpath);
      uihandler.sendemptymessage(0);
     }
    });
    return null;
   }
  }.execute();
 }

 private handler uihandler = new handler() {
  public void handlemessage(message msg) {
   mpd.dismiss();
   intent src = getintent();
   intent i = new intent();
   i.setclassname(src.getstringextra("package"), src.getstringextra("classname"));
   i.setdata(src.getdata());
   i.putextras(src);
   i.putextra(from_me, true);
   startactivity(i);
   finish();
  }
 };
}

  代码说明:

   主要是vitamioconnection.initnativelibs,大家自己写一个初始化的界面即可,线程里调用这个代码即可。

 三、vitamio问题汇总

  3.1 官网怎么打不开?

   由于vplayer.net、vov.io等几个网站都是我们部门自己维护的,目前就一人再改,出点问题来不及弄,你懂的。

 3.2  case : 为什么一直停在正在解码的解码?

    case : couldn't load vinit: findlibrary returned null

    case : not allowed to bind to service intent (act=io.vov.vitmio.ivitamioservice)

    case : io.vov.vitmio.vitamioinstaller$vitamionotfoundexception

    case : java.lang.unsatisfiedlinkerror: library /data/data/null/libs/libvplaer.so not found

    defalut : //各种运行不了的问题

    return 基本就一个问题,2012-7-9发布的vitamio测试版本无法共存的问题。无法与vplayer共存、无法与其他vitamio共存,需要卸载干净了。注意改一下包名(package)就是一个新的apk,需要把之前的卸载掉。

  3.3 视频/视频流(rtp、rtsp等)播放不了。

   可能存在以下几种情况:

   a). 视频本身就存在问题,你可以用其他播放器播放一下,是否能正常播放。

   b). 本地网速不给力/设备本事配置过低,这个没办法

   c). 视频源卡,本事带宽不够,直接访问也很慢,这个也没办法

   d). 用vplayer与vitamio同样都有问题,而其他播放器没事,这个可能是我们的问题,我们还在持续改进,尤其是播在线视频这部分,这个可以等新版发布 :)

   e). 等不及了,那就把视频测试地址和简要说明发给我们(vplayer@yixia.com),我们尽可能的抽时间来回复,感谢!

  3.4 vitamio最低支持的android版本

   目前我们在运行的项目最低支持android 2.1,示例工程选的android api level 是4.1,但不代表只支持4.0以上,大家可从androidmanifest.xml中看得出:

   <uses-sdk  android:minsdkversion="7"   android:targetsdkversion="15" />

 如果编译无法运行的话,把vitamiobundle项目下res/values-v11和values-v14删掉即可,其他部分稍作改动即可。

  3.5 为什么会弹出提示框要求安装vitamio plugin

   因为你下载和使用的是旧版的vitamio,请卸载干净后下载2012-7-9日发布的版本,请看本文 2.1 下载。

  3.6 是否支持硬解码?

   目前支持硬解码这部分不是很成熟,也不稳定,暂时不提供。

  3.7 什么时候发布新版本?

   诶,,,请关注我们官方微博(http://weibo.com/vitamio )!!目前集中精力再弄vplayer,新版顺利上线后应该能加快vitamio的发布速度,所以大家可以先用vplayer来测试。

  3.8 e/vitamio(1557): java.io.filenotfoundexception: no content provider: (2012-8-6)
   这个不是错误,是正常的处理。现在播放视频是这样做的:先把 url 当做一个 contentprovider 来打开,如果打不开,就直接当做 url 来打开

  3.9 vitamio支持哪些指令集的cpu?(2012-09-07)

   armv6、armv6 vfp、armv7 vfpv3、armv7 neon(注意:2012-8-31发布的版本不支持armv6的cpu,vplayer已经不支持,但下次发版vitamio会加上)

  3.10 播放网络视频突然中断的问题

   可能是视频网站做了限制,加入了一些不能播的地址,目前vitamio的处理是播不了就直接关闭了,后续版本会改进,直接跳过。

  3.11 拖动进度条出现回帧现象(本地播放,比如,拖到到1:20,但是播放时,跳到1:15) 【2012-11-20 新增】

   这是正常现象,不是播放器的问题。默认seek要到最近的关键帧,不能保证任何时间点上都有关键帧 。除非你是intra-only 的编码方式 。(——来自googlegeek)

 四、已知问题和注意事项(新版指2012-8-31发布的版本)

  4.1 混淆工程时注意,需要忽略vitamio里面的类库!(2012-8-1 update)

 -keep class io.vov.utils.** { *; }
 -keep class io.vov.vitamio.** { *; }

  4.2  不能在包含项目里面使用io.vov.vitamio.provider.mediaprovider

   否则如果安装了vplayer,会报冲突的错误无法安装。也就是说,可以直接使用vplayer的mediaprovider,或者自己写扫描服务,但是名字不能相同。

 五、其他

  5.1 调用vplayer来播放视频的代码:

private void startplayer(string url, string title) {
	intent i = new intent();
	i.setcomponent(new componentname("me.abitno.vplayer.t", "me.abitno.vplayer.videoactivity"));
	i.setaction("me.abitno.vplayer.action.view");
	i.setdata(uri.parse(url));
	i.putextra("displayname", title);
	startactivity(i);
}

 以上就是对android vitamio faq音频播放的组件详细介绍,希望能帮助android开发音频播放的朋友。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网