WAVファイルの再生

タグの編集
投稿者 IsZako  (小学生) 投稿日時 2013/6/15 15:18:13
VB2010でWAVファイルの再生をしたいのですが、コードがわかりません。
コードを教えてください。お願いします。
投稿者 zakiYoshi  (高校生) 投稿日時 2013/6/15 17:06:02
wav ファイルの再生方法は主に次の3つがあります。


(1) My.Computer.Audio.Play を使う。
[使用例]
Dim path As String = "(wavファイルがある場所)"
 '再生を始める。 
 My.Computer.Audio.Play(path)


(2) System.Media.SoundPlayer を使う。
[使用例]
Dim player As New System.Media.SoundPlayer
Dim path As String = "(wavファイルがある場所)" 

'再生を始める。 
 player.Play(path)


(3) Windows API を使う。
[使用例]
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
        (ByVal LpstrCommand As StringByVal LpstrReturnString As String, _
         ByVal uReturnLength As IntegerByVal hwndCallback As IntegerAs Integer
Dim path As String = "(wavファイルがある場所)" 

Private Sub PlaySound()

'ファイルを開く。 
mciSendString("open """ & path & """""", 0, 0)
'再生を始める。 
mciSendString("play """ & path & """""", 0, 0)

End Sub


(1)(2)の方法は、比較的簡単にwavファイルを再生でき、繰り返し再生にも対応しています。
ただ、同時再生はできず、wavファイル以外は再生できません。

(3)の方法は、wavファイル以外に、mp3やmidi音源にも対応しています。
最後には "close" & path のコマンドを送って、ファイルを閉じなければいけません。
投稿者 IsZako  (小学生) 投稿日時 2013/6/20 20:28:55
3つとも試しても駄目でした。
何かファイルが足りないのでしょうか。
投稿者 bz9  (中学生) 投稿日時 2013/6/21 06:22:48
何がどうダメだったのかを書くと相手は答えやすいですよ。

ココからは僕の予想ですけど、

Dim path As String = "(wavファイルがある場所)"
この部分を適切に書き換えていないと
もちろん再生されません。(だって、 "(wavファイルがある場所)"なんて場所無いもん!)
なので、
Dim path As String = "C:\Windows\Media\chord.wav"
のように、そのファイルのパス(場所)を入力してから再生させるとうまくいくかもしれません。

もしくは、再生はできているけどスピーカーがミュートになっている とか、
もともとのWavファイル自体が無音ファイル とか。

もともとのWavファイルが無音かどうかを確認するには、
Windows Media Playerで正しく再生できるかどうか確認するといいと思います。
投稿者 SUZURAN  (社会人) 投稿日時 2013/6/29 10:32:33
ぼくも、bz9さんのやり方でできると思います。
""のなかには、そのファイルのパスを入力するのです。
My.Computer.Audio.Play("ぱす")

これでもできない場合は、VBの基本構文を基礎から学んだほうが良いと思います。
応用ができても、基礎ができなければなりません。
投稿者 IsZako  (小学生) 投稿日時 2013/7/3 17:27:16
ファイル名を正しくしたら、ちゃんと動きました。
bz9さん、ありがとうございます。