作者milonga332 ( U U)
看板AndroidDev
标题[问题] 音乐播放的延迟
时间Thu Apr 12 23:36:27 2012
我想做一个类似节奏天国/太鼓达人之类的游戏
目前游戏中的各种零碎「音效」,用SoundPool来播放,即时性是满足够的
问题在於「背景音乐」的部分
用MediaPlayer来播放会有一定程度的delay
而且每次进入游戏的delay,有时长有时短
所以一旦delay较长的时候,会导致「背景音乐」与「音效」些微错开
感觉delay的范围大概是0~300ms之间
因为游戏是以节奏为主,满注重timing的
所以大概50ms以上的误差就不太能够接受了
除了MediaPlayer之外,有尝试过用SounPool来播放背景音乐
我看有人说SoundPool的单档容量不能超过1MB
但实际测试则发现无法超过约100KB,mp3/ogg都试过了
然而一场游戏大约2分钟,把音乐压缩到100KB实在有点惨...
另外也尝试过OpenSL的方式
我是借用这个专案的code来用
http://code.google.com/p/opensl-soundpool/
虽然delay的问题大幅减少
几乎每场游戏的delay都极短 (虽然偶尔还是会不理想...不过算可接受)
但是这个专案的code似乎只能使用wav档,而且要44.1K的
所以每次进入游戏的读取时间从原本大约0秒,变成8~10秒....= =
所以想请问大家不知道有没有什麽建议呢?
AudioTrack好像是一个方向
不过似乎有很多的细节需要处理,有点超出我的能力范围...
(我只是个Java & Android入门者)
OpenSL如果能修改成播放mp3/ogg那就很完美,不过若是自己来也是满有难度的感觉
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.217.144.143
※ 编辑: milonga332 来自: 61.217.144.143 (04/12 23:36)
1F:→ Eior:不确定 但您使用MediaPlayer是先prepared 进入再start? 04/13 02:04
是的,有事先prepare过了,delay是纯粹来自.start()这个指令
2F:推 Assyla:要不要玩玩jetplayer 04/13 02:16
那我试试看jetplayer好了,谢啦!
※ 编辑: milonga332 来自: 61.217.144.143 (04/14 01:40)