file.open(filepath, file.READ)
var buffer = file.get_buffer(file.get_len())
#put data into audiostreamsample
var stream = AudioStreamSample.new()
stream.data = buffer
コードは与えられていますが、まだテストされていません。(godot3.2 テストは失敗しました)
実行時に外部オーディオ (WAV) ファイルを簡単にロード · 問題 #732 · Godotengine/Godot-proposals (github.com)
私が与えた方法(WINDOSテストに合格しました)
1. まず、ゲーム開発中に外部オーディオ ファイルを godot の res:// ディレクトリにインポートし、次にインポートされたデータ ファイルを .imoprt/ フォルダにコピーします (中心原則: エンジンの最下層の再インポート、インポーター)
Godot3.5.2でサポートされている音声ファイル
MP3対応エンジン下位クラス:AudioStreamMP3
OGG対応エンジン下位クラス:AudioStreamSample
Wav対応エンジン下位クラス:AudioStreamOGGVorbis
原理説明:
オーディオ ファイルを res:// ディレクトリに置くと、godot がオーディオ .import ファイルを自動的に生成することがわかりました。
[remap] のパス行に注意してください。実際、Godot ゲーム エンジンの実行中、Godot エンジン自体によって再インポートされたファイルが読み取られます。
mp3 ファイルの場合、エンジンによって実際にデコードおよび再生されるファイルは、元のファイル .mp3 ではなく .mp3str です)
ogg ファイルの場合、エンジンによって実際にデコードおよび再生されるファイルは、元のファイル .ogg ではなく .oggstr です。
wav ファイルの場合、エンジンによって実際にデコードおよび再生されるファイルは、元の .wav ファイルではなく .sample ファイルです。
このファイルを外部ファイル システム ディレクトリに配置し、load() 関数を使用してロードするだけです。
作成者はファイルを C:\Users\me\Desktop\test ディレクトリに配置しました
ゲームシーンを構築するような
再生用のコード (ウィンドウ プラットフォームのテストに合格しました。他のプラットフォームではセルフテストが必要です)
extends Node2D
func _ready():
var stream1 = load("C:/Users/me/Desktop/test/fresh.oggstr")
var stream2 = load("C:/Users/me/Desktop/test/雪の朝.sample")
var stream3 = load("C:/Users/me/Desktop/test/景山将太.mp3str")
$bgm1.stream = stream1
$bgm2.stream = stream2
$bgm3.stream = stream3
$bgm1.play()
$bgm1.play()
$bgm3.play()
外部ファイルをロードして、.mp3 や .wav.ogg を直接再生したい場合は、機能しないと思います。
この点に関して、C++ プラグインを作成できます。これは、エンジンのコアをリソース ファイルにインポートするプロセスを自分で作成します (外部ファイルに適用可能)。つまり、基礎となるフォーマット エンコード変換プラグインをカプセル化します。あなた自身で。