2

FMOD またはその他の方法を使用してメモリストリームからファイルを再生するのを手伝ってくれる人はいますか?

これまでのところ、私はこれを持っています:
変数

    private FMOD.System _fmod = null;
    private FMOD.Sound _sound = null;
    private FMOD.Channel _channel = null;

コード

        var file = File.ReadAllBytes("test.ogg");
        //MessageBox.Show("Bytes from file: " + file.Length);

        FMOD.Factory.System_Create(ref _fmod);

        var result = _fmod.init(2, FMOD.INITFLAGS.NORMAL, (IntPtr)null);
        if(result != FMOD.RESULT.OK) ShowError(result);

        var info = new FMOD.CREATESOUNDEXINFO();

        result = _fmod.createStream(file, MODE.CREATESTREAM, ref info,  ref _sound);
        if (result != RESULT.OK) ShowError(result);

どんな助けでも大歓迎です

4

1 に答える 1

4

まず、FMOD に同梱されている「loadfrommemory」の例をご覧になることを強くお勧めします (C# バージョンもあります)。しかし、ここであなたの質問に答えるには:

  1. FMOD.CREATESOUNDEXINFO 構造体のいくつかのメンバーを設定する必要があります。

    info.cbsize = Marshal.SizeOf(情報); info.length = file.Length;

  2. OPENMEMORY フラグを使用してメモリ内データを提供していることを FMOD に伝える必要があります。

    result = _fmod.createStream(file, MODE.CREATESTREAM | MODE.OPENMEMORY, ref info, ref _sound);

必要なのはこれだけです。

于 2010-08-05T23:41:03.063 に答える