JOAL学习笔记 第八课 OggVorbis格式流

JOAL学习笔记 第八课 OggVorbis格式流由于本次课程中原文作者并未给出完整的代码片,也并未给出解码器的实现,因此我在这里把我已经调通的测试代码贴出来。先贴出一张图,这样能让大家对整个实现的体系有所了解……
摘要由CSDN通过智能技术生成

JOAL学习笔记

 

如果将之前实例代码中的错误数量比作毛毛雨的话,笔者已经让本次课程的大暴雨淋成落汤鸡了……


由于本次课程中原文作者并未给出完整的代码片,也并未给出解码器的实现,因此我在这里把我已经调通的测试代码贴出来。

先贴出一张图,这样能让大家对整个实现的体系有所了解:

可以看出,我并没有选择教程建议的j-ogg.de提供的j-oggAPI,这个德国网站上并没有实例的讲解,仅仅提供了一个API文档,我参照这个文档(英文)写了一些测试代码,发现其内部报了一个数组越界错误,估计这套API应该是有Bug的。

 

除了这个原因外,选择Java Sound API作为解码器核心的另一个理由,是对于mp3、ogg等格式已经存在较为成熟的SPI组件,我们无需显示地调用使用哪种解码器,JavaSound会自动找到系统内支持解码的服务,这样对于不同格式的文件可以通用一套API。

 

最后贴代码之前,先把依赖项来源给出,这次的依赖项很多:

Jlayer:http://www.javazoom.net/javalayer/javalayer.html

mp3SPI:http://www.javazoom.net/mp3spi/mp3spi.html

oggvorbisSPI:http://www.javazoom.net/vorbisspi/vorbisspi.html

jorbis:http://www.jcraft.com/jorbis/ 这是oggSPI的依赖项

项目示意图:

jcraft的资源下载下来是没编译的,需要自己加入项目中,这点请注意。


源代码:

Main.java:

package com.thrblock.openal;

import com.jogamp.openal.ALFactory;
import com.jogamp.openal.util.ALut;

public class Main {
	public static void main(String[] args) {
		ALut.alutInit();
		OggVorbisPlayer player = new OggVorbisPlayer(ALFactory.getAL(),"./oggData/ThorVariation.ogg");
		//OggVorbisPlayer player = new OggVorbisPlayer(ALFactory.getAL(),".
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值