« Wサウンド再生ソフトをつくる 環境づくり | トップページ | Wサウンド再生ソフトをつくる イベントハンドラ »

2011年9月22日 (木)

Wサウンド再生ソフトをつくる スコープ

 フォームにもう一つButton2をつくり、そのイベントプロシージャに

Dim fileName As String = "ファイル名2"
Dim MyAudio2 As New Microsoft.DirectX.AudioVideoPlayback.Audio(fileName)
MyAudio2.Play()

 と2つ目のAudioをつくったら、同時にサウンドファイルを再生することに成功しました。ここまでできれば、あとは細かい機能をつけていけばよい、次の週末にはできるのではないか?と期待しました。

 AudioVideoPlayback のAudioクラスのSDKを読むと、一時停止・終了・長さ取得・任意の場所から再生・音量の取得と設定・左右バランスの取得と設定と最低限必要な機能が備わっています。
 音量と左右バランスが、サウンドの比較には大切です。二つのサウンドの音量を合わせること・左右を二つの音源に割り振ることができるとで作業効率が上がります。あと再生ピッチが変えられるといいのですが贅沢な望みですね。

 すぐにButton3を配置してプロシージャに

MyAudio.Stop()
MyAudio2.Stop()

 を記述しましたが、エラーです… プロシージャレベルで MyAudio を宣言しているのだから他のプロシージャから操作できないのは当たり前でした。でも解決策が思い当りません。 Dim MyAudio.... をモジュールレベルにおけばいいのですが、....Playback.Audio(fileName) のファイル名は fileOpenDialogでそのつど動的に取得するのだからそこには書けません。

 乱暴なやり方で解決しました。モジュールレベルで Dim MyAudio AS Object となんでも屋さんで宣言して、ファイルオープンダイアログの後、あらためて Microsoft.DirectX.AudioVideoPlayback.Audio(fileName) をそのオブジェクトに代入したのです。フォームデザイナで配置したコントロールを配列にするとき、Object( ) に代入したことを参考にしました。これで MyAudio に対していろいろなプロシージャから操作できるようになります。先ほどの機能を次々にボタンで実装しました。

 ところがそれでは済まなかったのでした。

|

« Wサウンド再生ソフトをつくる 環境づくり | トップページ | Wサウンド再生ソフトをつくる イベントハンドラ »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: Wサウンド再生ソフトをつくる スコープ:

« Wサウンド再生ソフトをつくる 環境づくり | トップページ | Wサウンド再生ソフトをつくる イベントハンドラ »