这是ObjectAL / OpenAL iOS文档:
http://kstenerud.github.io/ObjectAL-for-iPhone/documentation/index.html#use_objectal_sec
在世界上如何在运行时简单地停止/暂停/静音特定声音(而不是所有声音)?
我尝试过使用OALSimpleAudio,OpenAL Objects和OALAudioTrack,但没有运气。
我正在使用cocos2d v3。
答案 0 :(得分:1)
您可以按照ObjectAL demos中提供的示例进行操作,例如SingleSourceDemo。
在他们的评论中提到了@ LearnCocos2D建议的ALSource。我会在这里解释一下。 首先,你应该有音频引擎 - 让我们说它是OALSimpleAudio。此外,让我们假设你不想用它来播放效果 - 它们将由不同的ALSource管理:
ALSource* effectSource;
ALBuffer* effectBuffer; //this is for the effect buffer
//don't reserve source for OALSimpleAudio
[OALSimpleAudio sharedInstance].reservedSources = 0;
//create the source for the effect.
source = [ALSource source];
//buffer the source file.
buffer = [[OpenALManager sharedInstance] bufferFromFile:@"audiofile.caf"];
现在您可以使用以下方法播放/暂停/音高:
[source play:buffer loop:YES]; //play sound from buffer and loop
[source stop]; //stop
[source rewind]; //rewind sound to the beggining
[source fadeTo:0.0f duration:1.0f target:self selector:@selector(onFadeComplete:)]; //fade effect from source
[source pitchTo:0.0f duration:1.0f target:self selector:@selector(onFadeComplete:)]; //pitch effect from source
等。希望这会有所帮助。