tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルBGMと効果音の再生
記事No8367
投稿日: 2008/10/23(Thu) 13:28
投稿者のゆ
はじめまして。
VB2005で幼児向けのゲームを制作しています。
そこで、ゲームを進める上でBGMと効果音を再生したいと考えています。

音楽を再生するプログラムは様々なサイトで見つけることができました。
プログラムをUSBに保存した場合には音楽を再生できます。
しかし、誰のどのパソコンでも、ネットワークにあげた場合でも問題なく音楽が再生される方法が分かりません。

どのようにすべきなのか、ご指導お願いします。

[ツリー表示へ]
タイトルRe: BGMと効果音の再生
記事No8368
投稿日: 2008/10/23(Thu) 13:39
投稿者魔界の仮面弁士
[My Project] の「リソース」タブから、必要なオーディオ リソース(*.wav)を
登録してください。

例えばそれが、"ding.wav" ファイルであれば、それを再生するために
 My.Computer.Audio.Play(My.Resources.ding, AudioPlayMode.BackgroundLoop)
のようなコードを記述する事ができます。


リソースとして指定すると、wav ファイルが EXE 内に取り込まれるため、
EXE の配置先がどこであっても、再生することができるようになります。

[ツリー表示へ]
タイトルRe^2: BGMと効果音の再生
記事No8371
投稿日: 2008/10/23(Thu) 16:34
投稿者のゆ
返信ありがとうございます。
この方法ではmp3やmidファイルの場合でも再生は可能なのでしょうか?
そして、ネットワーク上に保存した場合でも同じ方法で適用できますか?

お答え頂けると助かります。

[ツリー表示へ]
タイトルRe^3: BGMと効果音の再生
記事No8373
投稿日: 2008/10/23(Thu) 17:30
投稿者YuO
> この方法ではmp3やmidファイルの場合でも再生は可能なのでしょうか?

My.Computer.Audio.Play メソッド
http://msdn.microsoft.com/ja-jp/library/cf1shcah(VS.80).aspx
>.wav サウンド ファイルを再生します。
というわけで,SMFは間違いなく無理です。

で,内部ではSystem.Media.SoundPlayer.Play等を呼び出しています。
# .NET 3.5のソースを参照しました。
で,そのSoundPlayer.Playですが,
http://msdn.microsoft.com/ja-jp/library/system.media.soundplayer.play(VS.80).aspx
例外に
>InvalidOperationException
> .wav ヘッダーが破損しています。SoundLocation で指定したファイルは、
> PCM .wav ファイルではありません。
とあるため,通常のMP3ファイルはもちろん,
WAVEに入れたMP3ファイルも再生することは出来ません。


MCIをP/Invokeするとか,Windows Media PlayerをCOMで扱うなどするのが,
再生方法としては簡単な部類に入るのではないでしょうか。

[ツリー表示へ]
タイトルRe^3: BGMと効果音の再生
記事No8382
投稿日: 2008/10/24(Fri) 12:15
投稿者魔界の仮面弁士
> この方法ではmp3やmidファイルの場合でも再生は可能なのでしょうか?

たとえば、Managed DirectX を使う事ができます。
Microsoft.DirectX.AudioVideoPlayback.Audio クラスの Play メソッドで
音楽ファイルを再生できます。

参照設定で、"Microsoft.DirectX" と "Microsoft.DirectX.AudioVideoPlayback" を
有効にしておいた上で、

 Dim audio As New Microsoft.DirectX.AudioVideoPlayback.Audio(fileName)
 audio.Play()

といった感じですね。ストリームからの再生機能が無いようなので、もしもリソースから
再生したい場合には、リソースを一時ファイルとしてHDDにコピーする必要が
あるかも知れません。

他にも再生方法はありますが、とりあえずはこの辺りとか。
http://dobon.net/vb/dotnet/programing/playmidifile.html

[ツリー表示へ]