2011-09-30 3 views
0

나는 Delphi 프리즘을 사용하여 프로그램을 작성 중입니다. 목표는 동일한 프로젝트에서 Windows 및 Linux (모노)에서 실행할 수 있도록하는 것입니다. 그래서이 시점에서 winmm.dll 또는 microsoft.visualbasic.dll을 가져올 필요없이 Windows 및 Linux (모노) 용 사운드 파일을 재생할 방법이 필요합니다.winmm.dll 또는 microsoft.visualbasic.dll을 가져 오지 않고 사운드 파일을 재생

모노에서도 작동하기 때문에 visualbasic.dll을 사용하고 싶지 않습니다. 과거에는 여러 가지 문제가있었습니다.

이러한 dll 파일을 사용하지 않고 사운드 파일을 재생하는 방법이 있습니까?

UPDATE

상관없이 soundplayer 인스턴스화 및 사용하는 방법, 항상 리눅스 반면 가끔 재생 모노 그냥 전혀 재생되지 않습니다 다른 시간에서, 윈도우 OS에서 잘 작동하지

.

첫 번째 버전 :

var thesound := new SoundPlayer; 

    if Environment.OSVersion.Platform = Environment.OSVersion.Platform.Unix then 
    thesound.SoundLocation := '/sounds/Alarms.wav' 
    else 
    thesound.SoundLocation:='\sounds\Alarms.wav'; 

    thesound.Load; 
    thesound.PlayLooping; 

두 번째 버전은

var sp := new SoundPlayer(new FileStream("/sounds/Alarms.wav", FileMode.Open, FileAccess.Read, FileShare.Read)); 
sp.PlayLooping; 
+0

온라인 음악 파일에 관한 많은 정보는 Microsoft dll 파일과 관련되어 있습니다. – ThN

답변

4

당신은 System.Media.SoundPlayer를 사용할 수 있습니다. 이것은 Mono에 의해 구현됩니다.

+0

@digital'SoundPlayer'가 당신에게 어떤 도움이됩니까? 왜 안되면? –

+0

안녕하세요, 내 프로그램에서 SoundPlayer를 구현했지만 아직 테스트하지 않았습니다. 프로그램에서 다른 컴파일러 오류가 발생했습니다. 어쩌면 샘플 프로그램을 작성하고 테스트해야 할 것입니다. 그런 다음, 나는 당신의 대답을 받아 들일 것입니다. 다시 한번 감사드립니다. – ThN

+0

@ David, Linux 나 Mono 환경에서 돌아가는 프로그램을 작성하기 시작한 이래로 알아 차 렸던 점 중 하나는 Linux 나 Mono 환경이 Windows와 아무런 관련이 없기 때문에 이것이 매우 안전하다는 것입니다. 그러므로, 당신이 그들을 위해 쓰는 무엇이든, 당신은 당신이해야 할 일을 성취하는데 필요한 모든 단계를 수행하고 모든 것을 수행하도록해야합니다. 사운드 파일이 재생 된 이유와 그렇지 않은 이유는 코드에 문제가 있었기 때문이 아닙니다. 리눅스에서 무언가를 시작할 때 끝내야 만합니다. 그렇지 않으면 그 모드에서 멈춰서 다시 시작할 수 없습니다. 즉 직렬 포트입니다. – ThN