vitamio官方demo源码分析(1)——MediaPlayerDemo_Video.java分析

最近在做一个视频监控项目的android客户端,要求用rtsp协议完成视频流的传输,但苦于找到不合适的库。之前考虑过用live555或ffmpeg,但涉及到jni调用,加之不熟悉函数调用顺序,开发难度和周期较长,遂作罢。于是乎,混迹于各大论坛寻找解决方案,经过一番苦苦寻觅,终于找到了一个比较满意的多媒体框架——vitamio。

vitamio作为一个国人开发的android多媒体开发框架,以支持格式多、操作简单、容易上手著称。vitamio也支持多种流媒体协议,如HTTP Streaming、rtsp、mms等等。国内也有很多播放器是基于该框架构建而成,用户基数较大。

在开始分析源码之前,我们先来分析一下mediaplayer的生命周期。


状态1:Idel(空闲)状态 当 mediaplayer创建或者执行reset()方法后处于这个状态。

      状态2:Initialized(已初始化)状态 当 调用mediaplayer的setDataResource()方法给mediaplayer设置播放的数据源后,mediaplayer会处于该状态。

      状态3:Prepared(准备就续)状态 设置完数据源后,调用mediaplayer的prepare()方法,让mediaplayer准备播放。值得一提的是,这里除了prepare()方法,还有prepareAsnyc()方法,此方法是异步方法,一般用于网络视频的缓冲。当缓冲完毕后,就会触发准备完毕的事件。我们要做的就是监听该事件(OnPreparedListener),当缓冲完成时,执行相应的操作。在此状态上,我们可以调用seekTo()方法定位视频,此方法不改变mediaplayer的状态;亦可调用stop()放弃视频播放,使mediaplayer处于Stopped状态。一般我们会在此状态上调用start()方法开始播放视频。

       状态4:Started(开始)状态 当处于Prepared状态、Paused状态和PlayebackCompeleted状态时,调用Started()方法即可进入该状态。在该状态中,mediaplayer开始播放视频,可以通过seekTo()方法和start()方法改变视频播放的进度,当Looping为真且播放完毕后,它会重新开始播放(即循环播放);否则播放完毕后,会触发事件并调用OnCompletionaListener.OnCompletion()方法,进行特定操作,并进入PlaybackCompleted状态。在此状态中,亦可调用pause()方法或者stop()方法让视频暂停或停止,此时mediaplayer分别处于Stopped和Paused状态。

      状态5:Stopped(停止)状态 当 mediaplayer处于Prepared 、Started、Paused、PlaybackCompleted状态时,调用stop()方法即可进入本状态。应特别注意的是,在本状态中,若想重新开始播放,不能直接调用start()方法,必须调用prepare()方法或prepareAsync()方法重新让mediaplayer处于Prepared状态方可调用start()方法播放视频。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Android Vitamio是一个开源的跨平台多媒体播放框架,它支持播放多种音频格式,包括WAV格式。要在Android Vitamio中播放WAV文件,可以按以下步骤进行: 第一步:添加Vitamio库文件到项目中。在build.gradle文件中添加Vitamio库的依赖项。 第二步:在代码中初始化Vitamio库。在App的入口处(如MainActivity的onCreate方法中),调用Vitamio库的初始化方法,确保Vitamio库已经正确初始化。 第三步:创建一个MediaPlayer对象,用于播放音频文件。可以使用VitamioVitamio.createPlayer方法创建一个MediaPlayer对象。 第四步:设置音频文件的路径。使用MediaPlayer对象的setDataSource方法,传入要播放的WAV文件的路径。 第五步:准备MediaPlayer对象。调用MediaPlayer对象的prepareAsync方法,准备音频文件的播放。 第六步:设置MediaPlayer的监听器。可以注册一个MediaPlayer.OnPreparedListener监听器,用于在音频准备完成后播放音频。 第七步:开始播放音频。调用MediaPlayer对象的start方法,开始播放音频。 第八步:在适当的时机释放MediaPlayer对象。当音频播放完成或不再需要播放时,调用MediaPlayer对象的release方法,释放资源。 通过上述步骤,就可以使用Android Vitamio播放WAV文件了。需要注意的是,确保WAV文件的路径正确,并且要在AndroidManifest.xml文件中添加适当的权限,以允许访问存储器中的音频文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值