module Main (main) where
import qualified SDL
import SDL.Mixer
main :: IO ()
main = do
SDL.initialize [SDL.InitAudio]
withAudio defaultAudio 4096 $ do
load "test.wav" >>= play
SDL.delay 1000
SDL.quit
我试图使用Haskell播放声音,当我搜索如何做到这一点时,我发现了这个论坛。实际上,我想在日本网站上找到某种解决方案,因为我是日本人,但我找不到这样的网站。
我尝试了上面提到的OpenAl,并进行了一些修改后成功了,但我希望能够用更简单的方法得到结果。
我使用'sdl2'和'sdl2-mixer'库。为此,我必须将sdl2和sdl2-mixer库安装到我的操作系统中。
我正在使用DebianOS,并使用apt命令安装了'libsdl2-dev'和'libsdl2-mixer-dev'。
sudo apt instll libsdl2-dev libsdl2-mixer-dev
因为我安装这些文件已经很多月了,所以我的记忆有些模糊。
我使用“stack”来启动一个Haskell项目。
stack new myproject
(myproject
是项目名称)
我在 myproject
文件夹中编辑了 package.yaml
文件:
dependencies:
- base >= 4.7 && < 5
- sdl2
- sdl2-mixer
然后我还编辑了位于app
文件夹中的Main.hs
文件。那就是上面的代码。
我把test.wav
文件放在myproject
文件夹中,并使用以下命令:
stack run
我可以播放测试音频。