如何使用Android JetPlayer类

本文介绍了Android平台上的JetPlayer,一种用于播放交互式音乐和声音特效的引擎。文章讲解了Jet文件的基本结构及其如何通过MIDI消息来组织音乐,并概述了JetPlayer类的主要功能和使用流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Android中,还提供了对Jet播放的支持,Jet是由OHA联盟成员SONiVOX开发的一个交互音乐引擎。其包括两部分:JET播放器和JET引擎。JET常用于控制游戏的声音特效,采用MIDI(Musical Instrument Digital Interface)格式。

MIDI数据有一套音乐符号构成,而非实际的音乐,这些音乐符号的一个序列称为MIDI消息,Jet文件包含多个Jet段,而每个Jet段又包含多个轨迹,一个轨迹是MIDI 消息的一个序列。

JetPlayer类内部有个存放Jet段的队列,JetPlayer类的主要作用就是向队列中添加Jet段或者清空队列,其次就是控制Jet段的轨迹是否处于打开状态。需要注意的是,在Android开发中,JetPlayer是基于单子模式实现的,在整个系统中,仅存在一个JetPlayer的对象。JetPlayer的常用方法包括:

代码:Ringtone对铃声的播放

getJetPlayer() //获得JetPlayer的句柄
clearQueue() //清空队列
setEventListener() //设置JetPlayer.OnJetEventListener监听器
loadJetFile() //加载Jet文件
queueJetSegment() //查询Jet段
play() //播放Jet文件

下面是Jet的一般播放过程:
private boolean muteMask[][] = new boolean[9][32];
JetPlayer mJet = JetPlayer.getJetPlayer(); //获得JetPlayer的句柄
mJet.clearQueue(); //清空当前队列
mJet.setEventListener(this); //设置消息监听器
mJet.loadJetFile(mContext.getResources().openRawResourceFd(R.raw.level1));//加载文件
byte sSegmentID = 0;
mJet.queueJetSegment(0, 0, 0, 0, 0, sSegmentID); //查询Jet段
mJet.queueJetSegment(1, 0, 4, 0, 0, sSegmentID);
mJet.queueJetSegment(1, 0, 4, 1, 0, sSegmentID);
mJet.setMuteArray(muteMask[0], true);
mJet.play(); //播放

Jet文件的创建可以通过JetCreator记录工具进行, JetCreator记录工具由Python编写。关于JetCreator记录工具的详细用法可以参考Android帮助文档。

 

JetPlayer | Android Developers
https://developer.android.google.cn/guide/topics/media/jetplayer.html#jetcontent

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值