トップページ > 記事閲覧
現在再生位置の音の高さの取得
名前:b 日時: 2015/10/08 01:06

音楽をPlaySoundMem関数によって再生しています。 この時に再生時間がtimerという変数に、再生される音楽のハンドルがmusicという変数に格納されています 時間timerにおけるmusicの音の高さ(その地点での波形の高さ)を取得する方法を教えていただきたいです
メンテ

Page: 1 |

Re: 現在再生位置の音の高さの取得 ( No.1 )
名前:管理人 日時:2015/10/08 01:36

LoadSoundMem で読み込めるサウンドハンドルから直接波形データを取得する方法はありません 非公開関数の LoadSoftSound でソフトウエアで扱う形式のサウンドハンドルとして別途読み込めば、 同じく非公開関数の ReadSoftSoundData で指定の時間の波形の高さを取得することができますので、よろしければお試しください m(_ _)m // ソフトウエアで扱う波形データハンドルをサウンドファイルから作成する int LoadSoftSound( const TCHAR *FileName ) ; // ソフトウエアで扱う波形データハンドルのサンプルを読み取る // SamplePosition : 波形データの位置( サンプル単位 ) // Channel1 : チャンネル1の波形データを格納する int型変数のアドレス // Channel2 : チャンネル2の波形データを格納する int型変数のアドレス int ReadSoftSoundData( int SoftSoundHandle, int SamplePosition, int *Channel1, int *Channel2 ) ; あと、不要になったソフトウエアサウンドハンドルは DeleteSoftSound で削除してください // ソフトウエアで扱う波形データハンドルを削除する int DeleteSoftSound( int SoftSoundHandle ) ;
メンテ
Re: 現在再生位置の音の高さの取得 ( No.2 )
名前:b 日時:2015/10/13 21:57

ありがとうございます。ほぼ解決しました 現在、音の高さはReadSoftSoundData での波形の頂点の現れる頻度から算出しています。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存