C - 可以播放音乐吗?
C - Is playing music possible?
我正在用 C 语言制作一个基于文本的冒险游戏。
我正在使用 CodeBlocks,游戏将是一个控制台应用程序。
是否可以在程序中加入一个"background music"东西?
这将使游戏更加吸引人。
我只知道音乐应该是.wav格式的。
但是我只找到了这个问题的 C# 和 C++ 解决方案(C++ 解决方案是 YouTube 上的一个视频,质量很差)。
所以,如果可以用 C 语言实现,有人能告诉我怎么做吗?
不胜感激!
(另外,我希望音乐能够自行重播,因为它只有 2 分钟长,但我希望它在节目 运行 期间反复播放)。
提前感谢您的帮助!
在 C 中没有播放音乐的便携方式,这意味着 DOS、linux、mac 和 windows 有非常不同的解决方案。以下是这些方法的快速概述。它们都有点复杂:
- DOS:通过定时器中断的 0x42/0x43 直接进行 PIT 编程
- Linux:您需要 alsa 或 pulseaudio 库,以及播放音乐的后台线程。或者只是在后台启动像 sox 这样的媒体播放器,但是你必须确保用户已经安装了它。
- Mac OS:我不知道。我知道您可以生成
open file.wav
以在默认音乐播放器中播放文件,但这对用户来说可能会很烦人。
- windows:好的旧 MCI 命令可能需要最少的代码行数。您必须创建一个隐藏的 window 才能使 MCI 接口正常工作。
我正在用 C 语言制作一个基于文本的冒险游戏。 我正在使用 CodeBlocks,游戏将是一个控制台应用程序。
是否可以在程序中加入一个"background music"东西? 这将使游戏更加吸引人。
我只知道音乐应该是.wav格式的。 但是我只找到了这个问题的 C# 和 C++ 解决方案(C++ 解决方案是 YouTube 上的一个视频,质量很差)。
所以,如果可以用 C 语言实现,有人能告诉我怎么做吗?
不胜感激! (另外,我希望音乐能够自行重播,因为它只有 2 分钟长,但我希望它在节目 运行 期间反复播放)。
提前感谢您的帮助!
在 C 中没有播放音乐的便携方式,这意味着 DOS、linux、mac 和 windows 有非常不同的解决方案。以下是这些方法的快速概述。它们都有点复杂:
- DOS:通过定时器中断的 0x42/0x43 直接进行 PIT 编程
- Linux:您需要 alsa 或 pulseaudio 库,以及播放音乐的后台线程。或者只是在后台启动像 sox 这样的媒体播放器,但是你必须确保用户已经安装了它。
- Mac OS:我不知道。我知道您可以生成
open file.wav
以在默认音乐播放器中播放文件,但这对用户来说可能会很烦人。 - windows:好的旧 MCI 命令可能需要最少的代码行数。您必须创建一个隐藏的 window 才能使 MCI 接口正常工作。