NAudioによるレベルメーター

作品プログラム
動作環境
投稿者
ゆうと
更新日
2014-11-08 23:56:01
ダウンロード数
402

作品のプログラム

NAudioというドットネットアセンブリ(「[今の位置]NAudio.dll」)を作る
WaveOut=NAudioから「NAudio.Wave.WaveOut」を取得したもの
メイン画面を表示する
待機する

メイン画面とは
  ウィンドウを継承する
  はじめの手順
    初期化する
    ーー貼り付けた部品に対する操作をここに書きます
    Lは、キャンバス1へ四角形を描いたもの
    Lの線色を青に変える
    Lの太さを1に変える
    Lの背景色を黄色に変える
    Rは、キャンバス1へ四角形を描いたもの
    Rの線色を青に変える
    Rの太さを1に変える
    Rの背景色を黄色に変える
  終わり
  初期化する手順
  ーー自動生成された手順です。ここにプログラムを書き加えても消える場合があります
  この内部領域大きさを{295、324}に変える
  この内容を「NAudioによるレベルメーター」に変える
  このドラッグドロップを○に変える
  再生ボタンというボタンを作る
    その位置と大きさを{12、12、75、23}に変える
    その内容を「再生」に変える
    その移動順を1に変える
  キャンバス1というキャンバスを作る
    その位置と大きさを{119、12、155、296}に変える
    その移動順を2に変える
    その位置固定方向を「左+下+上」に変える
終わり

  再生ボタンがクリックされた時の手順
    WaveFileReader=NAudioから「NAudio.Wave.WaveFileReader」を取得したもの
    WaveOutからインスタンスを作ってoutputDeviceとする
    NAudioから「NAudio.Wave.WaveOut」をインスタンスとして作ってoutputDeviceとする
    outputDeviceのDeviceNumber=0
    outputDeviceのDesiredLatency=250
    // WAVE形式の場合
    NAudioから「NAudio.Wave.WaveFileReader」を{「C:\Windows\Media\Alarm05.wav」}でインスタンスとして作ってwavStreamとする
    // MP3形式の場合
    //NAudioから「NAudio.Wave.Mp3FileReader」を{「XXX.mp3」}でインスタンスとして作ってwavStreamとする

    NAudioから「NAudio.Wave.SampleProviders.SampleChannel」を{wavStream}でインスタンスとして作ってsampleChannelとする
    NAudioから「NAudio.Wave.SampleProviders.MeteringSampleProvider」を{sampleChannel}でインスタンスとして作ってpostVolumeMeterとする
    postVolumeMeterのSamplesPerNotificationは、postVolumeMeterのWaveFormatのSampleRate/500
    postVolumeMeterのStreamVolume時の手順は、StreamVolumeされた

    outputDevice:Init(NAudioから「NAudio.Wave.SampleProviders.SampleToWaveProvider」を{postVolumeMeter}でインスタンスとして作ったもの)
    outputDevice:Play()
  終わり
  
  StreamVolumeされた手順
    高さは、キャンバス1の高さ-40
    値配列は、この時のMaxSampleValues
    Lの位置と大きさは、{20,20+(1-値配列(1))*高さ,50,値配列(1)*高さ}
    Rの位置と大きさは、{80,20+(1-値配列(2))*高さ,50,値配列(2)*高さ}
    キャンバス1を更新する
  終わり
  
  終わりの手順
    outputDevice:Stop()
  終わり
  
終わり
	

▲ページの先頭へ