§16 サウンド2 | プログラミング実習 |
【3】 Media.SoundPlayerクラス
Media.SoundPlayerクラスを使って、wave形式の音声ファイルを再生する。クラスとして用意されているので、インスタンス(実体、オブジェクトと考えて良い。)を作成してから使用する。
操作 8 サウンド再生2 PlayButton2のクリックイベントに対応するメソッドを次のように作成する。
Private Sub PlayButton2_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles PlayButton2.Click
Dim SPlayer As New Media.SoundPlayer
'インスタンス作成
SPlayer.SoundLocation = "c:\windows\media\tada.wav"
'ファイル指定
SPlayer.Play() '音声再生
End Sub
インスタンスの作成には、「New」キーワードを使う。変数の宣言と同じような形で記述する。
音声ファイルをSoundLocationプロパティに設定し、Playメソッドで再生する。
実行して、サウンド再生2ボタンをクリックすると音声ファイルが再生される。
操作 9 ループ再生2 LoopButton2のクリックイベントに対応するメソッドを次のように作成する。
Private Sub LoopButton2_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles LoopButton2.Click
Dim SPlayer As New Media.SoundPlayer
'インスタンス作成
SPlayer.SoundLocation = "c:\windows\media\tada.wav"
'ファイル指定
SPlayer.PlayLooping() '音声繰り返し再生
End Sub
音声ファイルを繰り返し再生するには、PlayLoopingメソッドでを使う。
実行して、ループ再生2ボタンをクリックすると音声ファイルが繰り返し再生される。プログラムを終了するかサウンド再生2(またはサウンド再生1)ボタンをクリックするまで再生が繰り返される。
操作 10 サウンド停止2 StopButton2のクリックイベントに対応するメソッドを次のように作成する。
Private Sub StopButton2_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles StopButton2.Click
Dim SPlayer As New Media.SoundPlayer
'インスタンス作成
SPlayer.Stop() '停止
End Sub
実行して、ループ再生2ボタンをクリックする。音声ファイルが再生されているときにサウンド停止2ボタンをクリックすると再生が停止する。
【4】 リソースの利用
複数の音声ファイルを使うとき、まとめて管理できるようにした方が良い。画像ファイルの時もリソースに登録して利用したように音声ファイルもリソースに登録してから利用する。
画像ファイルのようにプロパティウィンドウで登録できない。開発環境のメニューから登録する。
操作 11 音声ファイルをリソースとして登録するため、次のようにメニューバーから選択する。
[プロジェクト(P)] → [実習16サウンド のプロパティ(P)...]
操作 12 プロパティウィンドウの[リソース]タブをクリックする(図@)。次に、[リソースの追加(R)]の右の ▼ (図A)をクリックするとダイアログが開くのでファイルを選択する。ファイルは、c:\windows\media\tada.wavとする。
↓↓↓
操作 13 サウンド再生1 PlayButton1とループ再生1 LoopButton1のクリックイベントに対応するメソッドを次のように変更する。
Private Sub PlayButton1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles PlayButton1.Click
My.Computer.Audio.Play("c:\windows\media\tada.wav", AudioPlayMode.・・・
↓
My.Computer.Audio.Play(My.Resources.tada, AudioPlayMode.Background)
End Sub
Private Sub LoopButton1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles LoopButton1.Click
My.Computer.Audio.Play("c:\windows\media\tada.wav", AudioPlayMode.・・・
↓
My.Computer.Audio.Play(My.Resources.tada, AudioPlayMode.BackgroundLoop)
End Sub
ファイル名の代わりにリソースを指定するだけである。
ファイル名を指定したときと同じように音声ファイルが再生される。
操作 14 サウンド再生2 PlayButton2とループ再生2 LoopButton2のクリックイベントに対応するメソッドを次のように変更する。
Private Sub PlayButton2_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles PlayButton2.Click
Dim SPlayer As New Media.SoundPlayer
'インスタンス作成
SPlayer.SoundLocation = "c:\windows\media\tada.wav"
'ファイル指定
↓
SPlayer.Stream = My.Resources.tada
'リソース指定
SPlayer.Play()
End Sub
Private Sub LoopButton2_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles LoopButton2.Click
Dim SPlayer As New Media.SoundPlayer
'インスタンス作成
SPlayer.SoundLocation = "c:\windows\media\tada.wav"
'ファイル指定
↓
SPlayer.Stream = My.Resources.tada
'リソース指定
SPlayer.PlayLooping()
End Sub
リソースを指定する場合は、Streamプロパティに設定する。
ファイル名を指定したときと同じように音声ファイルが再生される。
○ Windows Media Playerの機能を使う
手順
Private Sub Form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
AxWindowsMediaPlayer1.URL = "c:\windows\media\tada.wav"
End Sub
Windows標準のWindows Media Playerと再生機能は同じであるから、音声だけなく動画ファイルの再生も可能である。
ほかにも、メソッドやプロパティがインテリセンスに表示される。使い方などいろいろと調べて試してみよう。
§16 サウンド2 | Copyright©2009 Hiroshi Masuda |