
问题特征:(如果 不符合特征 说明 不是你想要的 解决方案)
1)进入游戏没声音
2)音量合成器没有显示 Minecraft 程序

我的音量合成器 (Volume Mixer)
3)游戏日志出现 OpenAL 路径报错(下图有 打开日志 的方法)

以 Hello MC Launcher (HMCL) 为例,在游戏启动时打开日志的方法

这是一段完整的 Minecraft 1.12.2 启动日志(没有声音)
问题分析: 上面日志截图中,红框 是原因,蓝框 是结果。 原因是 Minecraft 指定的 OpenAL 出现了问题,无法启动(第一个红框);Minecraft 试图寻找备用路径的 OpenAL 但也找不到(第二个和第三个红框,Thread 和 Sound Lib 先后报错)。 结果是 Minecraft 决定“切换到静音模式 (Silent Mode)”(蓝框),因此游戏压根没有创建声音任务。
解决方案: 原本我有两个方案,但深思熟虑后决定 不提供直接下载我发布的 OpenAL.dll 这种方案
因为不要轻易相信别人给你的 .dll 文件(尤其是非官方的),因为很可能会发生被劫持 or 被他人窃取信息 or 植入病毒 or 其他会让你后悔的事!!!!!!
下面介绍如何自己获取可信的 dll 文件
步骤 1:下载一个 Minecraft 1.13 及以上版本,这里以 1.13.2 版本为例。
步骤 2:找到这个路径 .minecraft\versions\1.13.2\1.13.2-natives
步骤 3:找到属于 1.13.2 的 OpenAL.dll 并复制(如图所示)

复制这个文件
步骤 4:找到没有声音的版本,这里以 Minecraft 1.12.2 为例,打开这个版本的 .minecraft 游戏文件夹(如果不知道确切路径,可以通过启动器一键打开,如下图所示)

用启动器打开游戏文件夹(母目录)
注意这里 不要 复制到 versions\1.12.2\natives-windows-x86_64 (因为无论哪个版本,游戏启动时,重新生成 natives 路径的所有文件)
步骤 5:将之前复制的 OpenAL.dll 粘贴并改名 为 OpenAL64.dll (多了64两个数字,这是 1.12.2 及以下版本对于 OpenAL 64位 的命名)

复制到 .minecraft 游戏文件夹
步骤 6:启动 Minecraft 1.12.2 (如果担心有问题可以打开日志模式)。如果能听到声音,就说明没有问题了,可以在其他版本把这个文件粘贴到目录下,一次性解决一堆问题。
如果依然有问题,欢迎在评论区讨论(我不确定能不能解决,但是我看到会帮忙想办法,当然也鼓励自己动手查资料 & 分析文件内容 & 找到并解决问题)
这段时间 Minecraft 整体感觉在走下坡路,无论是 Hypixel Skyblock 饱受争议的更新(有好有坏,喜忧参半)还是 EarthMC、ArchonHQ 等曾风靡一时的顶流服务器的大量玩家流失,亦或是暑假在 SimMC 因一些个人原因离职,一直找不到一个能 “玩的人不少” “值得肝” “不坐牢” 的服务器,这时候突然想起小时候就在多玩推荐页看到的 Wynn 高仿服,虽然我一直对这个服没啥印象, 也不知道是干啥的,但是他在 Essential Mod 的推荐页,必然有他厉害的地方。 入坑了才知道,(听说)Wynn好像12年就有了(不确定,也没详细研究),有个视频还提到 17年 Wynn 荣获吉尼斯记录,逐渐意识到这其实是个史诗级服务器。 在 1.18.2 玩了三天,终于网络通畅下载下来了材质,配上材质之后,无论是音乐、界面、地形,都非常有情调,这种传统 MMORPG 的 style 是 HySB 这个以空岛为基础的变种 RPG 所不能提供的。复杂但总能让我眼前一亮的装备、离谱但是很接地气的剧情、还有各种奇怪的地牢、解谜支线甚至是主线、非常逼真甚至给我吓一跳的恐怖剧情,以及百余首 BGM(好像是自制的)尤其是 Ragni 城那首,即便我 50 级了第一个想到的 BGM 还是 Ragni 的 “噔噔噔”。 抱着和 Skyblock 一样的流程,我查询了专用模组,有 Wynntils,WynnEx,WIM 三个比较受欢迎的模组,但可惜都是 1.12.2,而我其实是个懒癌患者,不到万不得已绝对不挪窝(一旦挪窝就一定要挪一个完美的窝)但在看了一些攻略视频之后,我逐渐体会到 装 Wynntils 与 不装 Wynntils 的巨大鸿沟(之前我一直辛辛苦苦在 载若地图 Xaero's Minimap 上跑图标点,现在完全不需要了,人家 Wynntils 早都制作好了;图鉴也能在游戏内查,再也不用切屏翻 WynnData 了) 于是乎,就有了今天这个专栏(我退坑 HySB 也是因为 1.8.9 没声音了) (中午搓了两把 gogo,被薄纱了) 下午从五点开始查到八点,几乎所有的 Threads,Bug Reports,Resolved Problems 都是建立在 “检查你的 Volume Mixer 是否静音了 Minecraft 1.12.2” 但是我连 Minecraft 都没有,检查个屁啊检查(bushi)
先是六点多查到了一个关于 OpenAL 报错的帖子,于是看了一下自己的日志,果然我也出问题了(但是这个帖子的解决方案说的很笼统,说用 LWJGL 官方的 OpenAL 替换游戏内的就行,但是他忽略了 native 路径下 OpenAL 每次游戏启动都会重新生成,所以永远会是有 Bug 的版本被读取)
然后是七点多查到了一个详细的解决方案,用 1.13 pre-release 的 OpenAL 放到 1.12.2 的主文件夹(也就是上文提到的解决方案),原文和译文内容如下
UPDATE 2: After a long and monotonous game of trial and error I finally managed to fix it! 第二次更新:经过了一段漫长而单调游戏尝试,和不断报错,我终于成功地拿下了这个问题! Using a advanced logger I found out Java would first look into default game folder for OpenAL64.dll 借助一个高级日志分析工具,我发现 Java 会先去默认游戏文件夹(\.minecraft)寻找 OpenAL64.dll 文件 In my case it was "C:\MyGames\Minecraft\profiles\Default\OpenAL64.dll" <= this path. 在我电脑上这个路径是“C:\MyGames\Minecraft\profiles\Default\OpenAL64.dll” ← 这个路径。 If it didn't find it it would attempt to grab the file from natives. But the OpenAL64.dll in there is faulty and causes it to not initialize! 如果 Java(在默认游戏文件夹里)没找到 OpenAL64.dll 文件,Java 会尝试从 natives 路径抓一份文件过来。但是,natives 路径下的 OpenAL 是有 bug 的,并且会导致 OpenAL 库不能初始化(进而声音系统没法工作)! So, I went ahead and grabbed OpenAL.dll from 1.13 native libraries, renamed it to OpenAL64.dll (because it obviously was a 64bit version alongside OpenAL32.dll) and dropped it into the exact folder from the path above. 因此,我顺水推舟从 1.13 的 natives 路径下 “借” 了一份 OpenAL.dll,并将其重命名为 “OpenAL64.dll”(因为这份文件显然是 64位 的,相较于另一份文件 OpenAL32.dll)然后把它丢进了上文提到的地址(译注:“C:\MyGames\Minecraft\profiles\Default\OpenAL64.dll”,版主的默认游戏文件夹,等效于各位的 .minecraft,只不过改了个名字而已)。 Alas it worked! I have functioning sound in Minecraft 1.12.2 and it appeared in Volume Mixer! (长吁一口气)终于正常运行了!我让声音在 Minecraft 1.12.2 工作了,而且它(Minecraft 声音进程)出现在音量合成器界面了! If anyone has that issue, definitely try that fix! You'll have to download 1.13 pre-release first but it's worth the short wait. 如果任何人碰到这个问题,一定一定要试试这个方法!!!你需要下载 1.13 先行版,但这一切等待都是值得的。(译注:版主发布的时候,1.13 才刚刚开始 pre-release,可见这个 bug 并不是 1.18 时代才出现的) Just go to "%appdata%\.minecraft\libraries\org\lwjgl\lwjgl-openal\3.1.2" and open "lwjgl-openal-3.1.2-natives-windows.jar" with 7zip or winrar. 只要到 “%appdata%\.minecraft\libraries\org\lwjgl\lwjgl-openal\3.1.2” 这个路径下,然后用 7zip 或者 WinRAR 打开 “lwjgl-openal-3.1.2-natives-windows.jar”。 Then copy out OpenAL.dll, rename it to OpenAL64.dll and drop it into the folder you use for your game! It's going to be same as Game Directory in the launcher. 然后把 OpenAL.dll 复制出来,重命名成 OpenAL64.dll 然后丢到你的默认游戏文件夹(\.minecraft)!跟你启动器告诉你的 “游戏目录” 是同一个路径。
(译注:我确实正常运行过1.8.9和1.12.2一年多,但是现在还是触发了bug)
随后我从自己之前的 1.13.2 版本(19年中旬玩 EMC 时候的远古端)复制了一份 OpenAL 到 1.12.2,试了一下解决了,也没有再报错。
(不过换到 1.12.2 版本还要再下载一次 Wynn 官方材质,我这个烂网不知道又要尝试到猴年才能成功)
1)提到 OpenAL 的帖子(二楼 TheMasterCaver 的回复) https://www.minecraftforum.net/forums/support/java-edition-support/3085965-minecraft-versions-older-than-1-13-dont-show-up-in
2)具体解决方案出处(一楼文末的 UPDATE 2 部分) https://www.minecraftforum.net/forums/support/java-edition-support/2910424-resolved-openal-failed-to-initialize-minecraft
(由于文章只能变更 3 次,因此我会积攒充分的问题后进行一次比较大的修改)
【第一次修改】20221103 Patch 很多朋友没成功的原因是:OpenAL.dll 复制到了错误的路径 因此修改了【步骤4】【步骤5】消除了歧义 1)步骤 4 添加具体图示,明确说明了错误路径 2)步骤 5 添加具体图示,图示中显示了正确路径应当出现的文件目录
【第二次修改】20221105 Revamp 1)变更标题,让文章更容易被搜到(我偶然刷到几个 MCBBS 的帖子,还在问这种问题,而且所有人的回答都是一些 “是个人都会去尝试” 的 “解决方案”,甚至还有人直接复制 百度知道 以及一些充斥“传奇广告”的垃圾网页的回答,对 MCBBS 广大回答者水贴的行为很心寒) 2)更正勘误:修改参考资料的第一个链接(之前是一段标题) 3)将引用的原文复制并逐句翻译,替换了原来颇为简要的大致转述