2016-07-08 122 views
0

您好,我知道如何使用BASS音频库在Inno Setup Install期间添加连续的音乐循环。Inno Setup:使用BASS音频库的所有功能和标志循环播放音频文件

但在这篇文章中,(这让我决定使用BASS.dll我Inno Setup的安装过程中连续做音乐圈),似乎并不被定义的所有标志支持BASS.dll.

当我使用本文中描述的代码时,BASS音频库不循环播放MP3文件。 文件完成播放成功后重新开始播放。 第二次启动需要2秒以上。 这不是一个循环,因为我认为。要成为一个循环,音频文件必须以最小的间隙继续重播。

这篇文章只定义了EncodingFlagBASS_SAMPLE_LOOP标志与Inno Setup的Pascal脚本一起使用。

但似乎可以用诸如BASS.dllBASS_SAMPLE_FLOATBASS_SAMPLE_PRESCAN可以使用更多的有用的标志。

我不知道如何定义,在Inno Setup的由BASS.dll支持像所有的标志:

[Code] 
const 
    BASS_SAMPLE_LOOP = 4; 
    BASS_ACTIVE_STOPPED = 0; 
    BASS_ACTIVE_PLAYING = 1; 
    BASS_ACTIVE_STALLED = 2; 
    BASS_ACTIVE_PAUSED = 3; 
    BASS_UNICODE = $80000000; 
    BASS_CONFIG_GVOL_STREAM = 5; 

我如何可以定义BASS.dll支持的所有标志?

我想知道这一点,因为我想循环我的MP3音频文件连续指定的时间。

不从文件的开始到结束连续循环。

在此先感谢。

回答

1

使用与您在问题中相同的语法来定义附加标志。

附加标志的值被定义如下:
http://bass.radio42.com/help/html/fdf43f28-d1cd-2951-c126-3ce35edaa7f5.htm

+0

非常感谢您给我自己的价值观......但为什么我不能使用像'程序InitializeWizard();begin BASS_Init(-1,44100,0,WizardForm.Handle,0);SoundStream:= BASS_StreamCreateFile(False,ExpandConstant('{tmp} \ music.mp3'),0,0,0,0,BASS_SAMPLE_LOOP); BASS_SetConfig(BASS_CONFIG_GVOL_STREAM,1500); BASS_SetConfig(BASS_CONFIG_GVOL_STREAM,1500);BASS_ChannelPlay(SoundStream,False); 结束;'?改变这样的代码会使'BASS'不会播放任何内容。我只删除了'EncodingFlag'标志。 – GTAVLover

+0

我假设你必须在Unicode版本的Inno Setup中设置“unicode”标志。 –

+1

Ahh好吧,你的意思是,如果我为'BASS.dll'设置了任何标志,我必须将它与'EncodingFlag'结合。谢谢你。我会做其余的事情并通知你发生了什么事。 – GTAVLover