说来惭愧,到最后好像自己也没做到些什么出来。

因为工作需求,需要实现同时对多首OGG音频进行无缝循环播放。

我尝试过在Java层用Java解码OGG文件,那效率就不说了,想崩溃就用吧:D

后来用本地代码尝试,但我最终只实现了单线程解码并播放,基于OGG解码库和OpenAL播放,而且是解码完再播放。

其实思路是很简单的,一边解码一边把解码后的数据放进播放器缓存播放就是了。但是由于时间关系后面的没做到。

最后在偶然之下发现BASS库

BASS Library:http://www.un4seen.com/

不得不说这库够强大的。

尝试了下确实可以无缝播放了,同时BASS库本身还有其他很好的功能可以发掘。

另外作者在论坛里也说道,无缝循环也只是在解码时一旦解码到文件尾就重新从头解码而已。

所以最后我选择对它进行了简单的封装,稍微参考MediaPlayer的方法。

具体可以看这里:https://github.com/ViTess/Android-OMEPlayer

往后会逐渐把插件和一些音效功能继续封装,那就不用再去看那个有点莫名其妙的文档了。

Android实现OGG音频的无缝循环播放相关推荐

  1. JavaScript实现京东轮播图效果——自动轮播,左右按钮切换图片,小圆圈跟随图片变化,点击小圆圈可跳转图片,无缝循环播放

    JavaScript实现京东轮播图效果--自动轮播,左右按钮切换图片,小圆圈跟随图片变化,点击小圆圈可跳转图片,无缝循环播放 静态效果图如下: CSS部分 *{margin: 0;padding: 0 ...

  2. 【杰理AC692X】关于外挂FLASH音频无间断循环播放

    SDK:extern_flash_V2.5.1 这里说的无间断播放,比如说下面的音频信号: 要求是循环播放的时候不能有停顿 按照<AC692x系列提示音无间断循环播放>中的描述,把flas ...

  3. android aac格式,android aac文件格式音频的录制和播放

    封装的工具类: package com.example.voaactest; import java.io.File; import java.io.FileNotFoundException; im ...

  4. windows media player循环播放和退出

    我学习c#中winform自带的windows media player,找这方面的资料,找了许久,今天我在这里总结一下. 我们在c#的"工具栏"里需要导入windows medi ...

  5. android 循环播放mp3,android – 使用AudioTrack播放循环音频

    由于MediaPlayer的一些众所周知的缺陷,例如循环播放曲目之间出现的小差距,我有一个功能我想转换到使用Android的AudioTrack而不是MediaPlayer. 我被推荐使用AudioT ...

  6. unity3d 音频无缝循环

    在我做赛车漂移的时候,漂移的声音断断续续的,搞得我很郁闷 大家可以随便找个音效然后循环播放去仔细听 你会发现当音效播放完成一次之后循环播放第二次时会停顿一下 我做赛车漂移如果中途停顿了体验是非常不好的 ...

  7. android 无缝连续播放视频

    android 无缝连续播放视频 最近在做视频合成的时候要求把用户选择的视频能够连续预览,第一想的是用户在预览的时候把视频拼接后在预览,结果发现拼接的时间太久了,这种方式不行,结果搞了一天用media ...

  8. Android Settings->Sound->Phone ringtone试听铃声循环播放的原因

    安桌铃声的循环播放不是系统决定的,而是在铃声文件上面做了 ANDROID_LOOP的标记,而 ringtones文件夹里面的铃声文件一般都有 ANDROID_LOOP的标记,所以不适合直接拿来当短信铃 ...

  9. android 网络mp3格式,Android-使用MediaPlayer播放网络音频并且缓存

    需求 接口中返回一个List,其中部分对象有音频文件的url.对有url的item视图中添加一个播放按钮.点击按钮播放音频,再次点击暂停或停止.点击其他item播放新的音频.点击item进入二级页面, ...

最新文章

  1. void *指针的加减运算
  2. 单片机从事什么工作?只会51单片机能找到工作吗?
  3. 拒绝DNN过拟合,谷歌准确预测训练集与测试集泛化差异,还开源了数据集 | ICLR 2019...
  4. 使用Zapier将应用程序与Neo4j集成
  5. 搜索---广度优先遍历、深度优先遍历、回溯法
  6. 前复权后复权程序C# .net
  7. linux模块加载和模块卸载时出现的问题
  8. html如何算小于0判断错误,如果长度小于0在javascript中提醒
  9. phpstrom常用配置
  10. 六自由度机械臂项目学习笔记
  11. Ubuntu 12.10方便操作套件
  12. 【LwM2M】LwM2M协议官方文档
  13. 2016年人人网笔试题
  14. C编译器剖析_5.2.1 中间代码生成及优化_布尔表达式的翻译
  15. 职高计算机应用基础学的什么,职高计算机应用基础教法初探
  16. 年终考核:对你的上司,你是如何评价的?
  17. 下载、安装Ctex及编译自动化学报模板时错误的解决
  18. IOS开发-画曲线画弧线画圆
  19. python安装依赖库
  20. 微信小程序获取收货地址及存储收货地址

热门文章

  1. java-springboot整合发送邮件|告警邮件|注册邮件
  2. 如何制作超清gif?手机怎么在线制作gif动画?
  3. 【Python】模拟登陆房天下的总结
  4. LY3307集成充电电机驱动与档位指示的小风扇牙刷三档集成IC芯片
  5. Sqlserver 动态sql语句 和 use 关键字
  6. word2003和2007中如何加载MathType插件选项
  7. 金三银四跳槽季,这份宝典让你一路开挂
  8. 塑料回收---未来化工行业的新兴增长领域
  9. python倒计时60_Python微项目分享之事件倒计时
  10. linux io多路复用详解,Linux系统中IO多路复用