2010-08-05 12 views
2

FMOD 또는 다른 방법을 사용하여 memorystream에서 파일을 재생할 수있는 사람이 있습니까?스트림에서 C# 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); 

크게

+0

안녕하세요! C#에서 fmodex.dll을 어떻게 작동시킬 수 있었는지 물어볼 수 있습니까? 나는 이것에 관해 혼란을 겪고있다. 감사! – user488792

+0

안녕하세요, 죄송합니다. 작동하지 못했습니다 ... 결국 시간이 모자라면서 사운드 파일에 MP3 형식을 사용했습니다. –

답변

4

을 주시면 감사하겠습니다 어떤 도움이 첫째로 내가보기 엔 당신이 봐 추천 "loadfrommemory"에서 FMOD (그것도 C# 버전이있다)와 함께 충분한 배. 그러나 여기에 질문에 대답 :

  1. 당신은 FMOD.CREATESOUNDEXINFO 구조의 일부 구성원 채울 필요

    info.cbsize = Marshal.SizeOf (정보); info.length = file.Length;

  2. 당신은 당신이 OPENMEMORY 플래그 - 메모리 데이터를 제공하는 FMOD 말할 필요 :

    결과 = _fmod.createStream (파일, MODE.CREATESTREAM | MODE.OPENMEMORY, 심판 정보, 심판 _sound);

그만하면됩니다.

+0

와우 <어떻게 examples_csharp !!!를 보지 못했습니까 ??? ??? 너는 절대 구세주 야! 나는 모든 것을 내게 줄 수 있기를 바란다 : 도움을 주신 P! –

+0

: D : D : D : D : D : D 당신은 신이에요. 나는 내 논문 작성을 위해 내 음악 플레이어를 절대 만들지 않을 거라 생각 했어! :) FMOD는 대단해 !!! –

+0

안녕하세요 고마워, 지금은 작동하지만, 만약 내가 단지 채우기, 말하자면, 버퍼의 10 %, 다음 재생을 시작, 다음 버퍼를 채우고, 소리 중지 재생 10 % 표. 왜 그럴 수 있는지 아십니까? –