§16 サウンド2 プログラミング実習
 back next 

【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の機能を使う

手順

  1.  新しいプロジェクトを作成する。
     
  2.  Windows Media Playerの機能が使えるように、メニューバーから次のように選択する。
      [ツール(T)] → [ツールボックス アイテムの選択(X)...]
     
  3.  ツールボックス アイテムの選択 ダイアログで、[COMコンポーネント]タブをクリックする。
     
  4.  COMコンポーネントのリストから[Windows Media Player](パス:C:\Windows\System32\wmp.dll)にチェックを入れて、[OK]ボタンをクリックする。
     
  5.  フォームにWindows Media Playerをダブルクリックで配置する。ツールボックスの[すべての Windows フォーム]グループにある。
    → 配置されたWindows Media Playerのオブジェクト名(Name)は、AxWindowsMediaPlayer1となっている。
     
  6.  AxWindowsMediaPlayer1を選択して、DuckプロパティをFillに設定する。
    → フォームいっぱいの大きさになる。
     
  7.  プログラムを起動すると、Load イベントが発生する。フォームのLoadイベントに対応するFome1_Loadメソッドに、次のようにプログラムを入力する。

        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

  8.  実行すると音声ファイルが再生される。

 Windows標準のWindows Media Playerと再生機能は同じであるから、音声だけなく動画ファイルの再生も可能である。
 ほかにも、メソッドやプロパティがインテリセンスに表示される。使い方などいろいろと調べて試してみよう。

 

 back next 
 §16 サウンド2 Copyright©2009 Hiroshi Masuda 

 

 

inserted by FC2 system