问题标签 [sdl-mixer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
shell - 通过终端使用 pygame 停止播放歌曲
我的代码:
有什么方法可以处理 2 个使用 pygame 播放和停止音乐的程序。
使用类似的脚本我可以播放音乐,但使用上面的代码我无法在从终端执行时停止音乐。
c++ - SDL_mixer 播放静态文件而不是 .wav 文件
我正在 SDL 2 中制作一个有声音的俄罗斯方块版本。我有背景音乐,效果很好。但是,声音效果(移动、旋转等)播放的是静态的,而不是它们应该播放的。
一些代码:
定义:
开头:
播放声音代码:
关:
杂项信息:
- 在 VS 2013 中使用 C++
- 使用昨天下载的 SDL_mixer 2.0.0
- 声音约为 11kB,音乐为 94,675kB
- 声音在 Windows Media Player 中播放良好
如果您需要任何其他信息,请告诉我,并提前致谢!
c - SDL_Mixer 错误“混音器不是用...支持构建的”
我正在尝试在我正在开发的游戏的背景下播放音乐。我第一次使用 SDL2 和 SDL-mixer。我自己编译了它们并将文件放在我的程序文件夹的根目录下(出于可移植性目的)。现在,当我运行游戏时,没有声音播放并且 Mix_GetError() 返回此错误:
我正在尝试播放 MP3 文件,但是当我尝试使用 OGG 和其他格式进行初始化时,我得到了同样的错误。
这是功能,如果它完全相关的话。
我在那个特定问题上没有找到太多,但我认为问题来自我从源代码编译 SDL2 和 SDL-mixer。我一定忘记了什么,但我真的不知道......顺便说一句,我在 OSX 上(还没有真正习惯它)。
感谢大家的帮助!
编辑/我没有尝试过使用 WAV 文件。
c++ - SDL_mixer 某些 mp3 文件没有声音
所以我在使用 SDL_mixer 时遇到了问题,它似乎在大量 mp3 上播放良好(虽然“很好”。我注意到在一些 MP3 的开头有一小段声音损坏,然后它开始播放)但在某些 MP3 文件中,只有绝对的沉默。好像什么都玩不了。而且 Mix_PlayMusic 似乎没有返回错误,也没有其他任何东西,但它似乎没有发出任何声音。有时我会在尝试播放这些文件时得到一个随机的“访问读取冲突”,但每隔一次,它只是沉默。
这是我用来播放 MP3 文件的代码:
我正在检查 MP3 文件中的差异,似乎唯一真正的区别是具有 LAME3.99 编码的文件似乎不起作用。有人能解释一下吗?
编辑:经过更多测试,它似乎也发生在其他人身上
c++ - 使用 SDL_Mixer 获取当前正在播放的 Mix_Music
我正在使用 SDL_Mixer 在我的 C++ 游戏中实现声音,但在手册中找不到可以为我提供当前正在播放的 Mix_Music 的函数。我想我需要它知道我是否可以释放 Mix_Music,这取决于它当前是否正在播放。
c++ - SDL_mixer 函数 Mix_LoadMUS_RW 导致访问冲突
我在使用 SDL_mixer 从内存中加载音乐时遇到问题。以下包含一些错误检查的“最小”示例将始终因 Music::play 中的访问冲突而崩溃。
我的 ArchiveManager 确实可以工作,这也可以看出,因为注释将缓冲区写入文件的块并从中创建 SDL_RW 将运行得很好。我加载的音乐文件只是假设是一个 ogg 文件,在这种情况下就是这样,因此从文件创建一个 SDL_RW 工作正常。意味着没有崩溃,音乐从头到尾正常播放。
音乐课在我看来太大了。我只是保留缓冲区 m_file 以及 SDL_RW 以确保问题不是来自被释放的数据。使用 SDL_FALSE 运行 Mix_LoadMUS_RW 还应确保未释放 RW。
值得注意的是,使用 Mix_LoadWAV_RW 从同一存档中加载 wav 文件的类似示例可以正常工作:
在调用 Mix_PlayCannel 之前,我什至没有保留缓冲区。同样在这里,我使用 SDL_TRUE 调用加载函数,因为我没有创建显式 SDL_RW。尝试加载音乐类似的事情不会有什么不同。
我研究了 SDL_mixer 源代码,但对我没有帮助。也许我的知识不够,或者我错过了一些重要的东西。
直截了当:访问冲突从何而来,我该如何防止它?
编辑:更改了示例代码,因此任何人都可以直接复制它。所以没有 ArchiveManager 或类似的东西,只是将 ogg 直接读入内存。关键部分只是 loadMusic 中的几行。
c++ - Mix_LoadWAV 在不应该返回 NULL 时
我正在用 C++ 制作游戏,但我一直遇到一个问题,我无法弄清楚何时涉及声音。我正在使用 SDL_Mixer,Mix_Music 用于音乐,Mix_Chunk 用于音效,但由于某种原因,当我尝试使用 MIX_LoadWAV 加载音效文件时,它返回 NULL。
问题是,当我使用 MIX_LoadMUS 加载相同的文件(加载为音乐而不是音效)时,它加载得很好。
我找不到任何可以解释该问题的差异;唯一的区别是 Mix_LoadWAV 而不是 Mix_LoadMUS,但为什么呢?Mix_LoadMUS 不适用于 Mix_Chunk,否则我只会使用它,但是......
在这里,我将向您展示我使用的声音管理器的代码。MusicClip 是一个 Mix_Music,而 SoundClip 是一个 Mix_Chunk。
这是 MusicClip 和 SoundClip 的代码;除了我将 PlayOnce 和淡出添加到 MusicClip 之外,它们似乎相同。
-
这是我用来调用函数的代码。(soundManager 已在程序的早期初始化以启动 BGM。)因此,使用 Mix_Chunk* SFX2 将不起作用:
但出于某种原因,如果我将 SFX2 更改为 Mix_Music*,这确实有效。
我该怎么办?Mix_GetError() 也不返回任何内容......如果我写错了路径,它会返回“无法打开文件”,所以很明显它可以找到/打开文件,它只是......不会?我也不能只使用 Mix_Music 作为我的音效,因为如果我这样做,它们会抵消音乐。
顺便说一句,我不知道它是否相关,但 Mix_LoadMUS 不会加载非 wav 文件,即使它也应该支持 .ogg 和 .mp3?
c++ - SDL_mixer 不会播放声音 Raspberry Pi
我无法SDL_Mixer
在树莓派上播放声音。该程序可以编译并构建,但我听到的只是一声短促的吱吱声(像静态的),什么也没有。
有任何想法吗?
macos - ./configure 找不到头文件
我正在编译一个使用 SDL_mixer 播放.ogg
文件的项目。但是,Mix_Init(MIX_INIT_OGG)
失败并Mix_GetError()
返回"Mixer not built with Ogg Vorbis support"
。我使用的 SDL_mixer 版本是 1.2.12,通过 Homebrew 下载。
所以我下载了 SDL_mixer 的源代码(相同版本,1.2.12),并尝试使用 Ogg 支持构建它,即./configure --enable-music-ogg
,但configure
无法找到 Vorbis 头文件。这是它给出的输出:
我什至尝试传递--includedir=/usr/local/include
给configure
,但没有成功。我有 Vorbis 和 Ogg 头文件/usr/local/include
,所以例如路径vorbisfile.h
是/usr/local/include/vorbis/vorbisfile.h
. 我还尝试从头开始构建 libogg 和 libvorbis,但我仍然遇到相同的错误。我正在使用 OS X 10.11.1 测试版。
我究竟做错了什么?
编辑
输出brew ls sdl_mixer
:
c++ - SDL_mixer 停止在某些事件上播放音乐
如果某个点在范围内,我的程序需要停止播放声音,因为我有一个函数类,run()
它在单独的线程上运行并使用 and 播放SDL.h
声音SDL_mixer.h
:
但是当if
条件返回 true 时,它会打印“停止声音”但声音仍在播放,这似乎是什么问题?