關(guān)于Godot加載外部音頻文件的臨時(shí)變通辦法
. 先把外部音頻文件在游戲開發(fā)的時(shí)候?qū)朐趃odot的res://目錄下,然后復(fù)制導(dǎo)入后的.imoprt/文件夾下的數(shù)據(jù)文件(核心原理:引擎底層重導(dǎo)入,importer)
Godot3.5.2支持的音頻文件
MP3對(duì)應(yīng)引擎底層類:AudioStreamMP3
OGG對(duì)應(yīng)引擎底層類:AudioStreamSample
Wav對(duì)應(yīng)引擎底層類: AudioStreamOGGVorbis
原理解釋:
我們發(fā)現(xiàn),當(dāng)我們把音頻文件放入res://目錄下時(shí),godot會(huì)自動(dòng)生成 音頻.import文件
注意看里面的[remap]里面的path那一行,實(shí)際上,godot游戲引擎運(yùn)行的時(shí)候讀取的是經(jīng)過godot引擎自己重導(dǎo)入的文件
對(duì)于mp3文件而言,引擎實(shí)際上解碼播放的文件是.mp3str,而不是原始文件.mp3)
對(duì)于ogg文件而言,引擎實(shí)際上解碼播放的文件是.oggstr,而不是原始文件.ogg
對(duì)于wav文件而言,引擎實(shí)際上解碼播放的文件是.sample文件而不是原始文件.wav
我們只需要把這個(gè)文件放入到外部文件系統(tǒng)目錄就可以用load()函數(shù)加載了
筆者把文件放在了C:\Users\me\Desktop\test目錄下
如圖搭建游戲場(chǎng)景

播放用的代碼(window平臺(tái)測(cè)試通過、其他平臺(tái)需要你們自測(cè))

如果想要加載外部文件直接播放.mp3,.wav.ogg恐怕是不行的。
這方面可以寫個(gè)C++插件,就是把引擎的核心導(dǎo)入資源文件的那個(gè)過程自己再寫一遍(適用于外部文件)也就是自己封裝一個(gè)底層格式編碼轉(zhuǎn)換插件。

那個(gè)開發(fā)時(shí)候,游戲引擎導(dǎo)入資源文件產(chǎn)生Import的過程,得翻源碼,自己調(diào)用,在游戲運(yùn)行的時(shí)候轉(zhuǎn)換格式,保存user://,然后再load 音頻文件,就可以直接賦值播放了

有用記得收藏+轉(zhuǎn)發(fā),謝謝了。