Re: 機能要望:音ファイルの時間指定関連 ( No.1 ) |
- 名前:管理人 日時:2007/03/26 14:03
たくさんどうも、DXライブラリの管理人です。
御所望の機能は非公開ですが既に現在のバージョンにあります。
===== バイト指定やサンプル指定版 =====
// サウンドハンドルの再生位置をバイト単位で変更する(再生が止まっている時のみ有効)
int SetSoundCurrentPosition( int Byte, int SoundHandle ) ;
// サウンドハンドルの再生位置をバイト単位で取得する
int GetSoundCurrentPosition( int SoundHandle ) ;
// サウンドハンドルの音の総時間を取得する(単位はミリ秒)
int GetSoundTotalTime( int SoundHandle ) ;
===== ミリ秒指定版 =====
// サウンドハンドルの再生位置をミリ秒単位で設定する
int SetSoundCurrentTime( int Time, int SoundHandle ) ;
// サウンドハンドルの再生位置をミリ秒単位で取得する
int GetSoundCurrentTime( int SoundHandle ) ;
// サウンドハンドルの音の総時間を取得する(単位はサンプル)
int GetSoundTotalSample( int SoundHandle ) ;
基本的にはミリ秒指定版で事足りると思いますが、より厳密な位置指定をする場合は
バイト指定版を使用する必要があります。
因みに ogg ファイルは大丈夫ですが、mp3 ファイルでは各関数が正常に動作しない可能性が
ありますのでご注意下さい。m(_ _;m
あと、注釈文だけでは使い方が分からない関数がありましたらご質問下さい。
|
Re: 機能要望:音ファイルの時間指定関連 ( No.2 ) |
- 名前:「たく」 日時:2007/04/07 02:45
お返事遅れました、「たく」です。
すでに実装されていたんですね、うれしい限りです。
で、ogg ファイルを使って調査してみたのですが、
GetSoundCurrentTime は正常に動作していますが、
SetSoundCurrentTime でint値を指定しても必ず
最初から再生されてしまいます。
int OGGHnd,i ;
OGGHnd = LoadSoundMem("music.ogg") ;
PlaySoundMem(OGGHnd,DX_PLAYTYPE_LOOP ) ;
i = SetSoundCurrentTime(23000,OGGHnd) ;
メモリーにロードしたoggファイルに対しては
何か特別な作法が必要でしょうか。
よろしくお願いします。
|
Re: 機能要望:音ファイルの時間指定関連 ( No.3 ) |
- 名前:管理人 日時:2007/04/08 14:02
「たく」さんどうも、DXライブラリの管理人です。
申し訳ありません、明らかに説明不足でした。
まず、SetSoundCurrentTime は音が再生中の場合は正常に動作しませんので、
PlaySoundMem の前に実行してください。
そして、PlaySoundMem 関数はデフォルトで音の再生位置を先頭に戻してから
再生を開始しますので、それを行わないようにするために非公開関数の
第三引数 TopPositionFlag に FALSE を渡すようにして下さい。
(PlaySoundMem 関数は実際には以下の様に宣言されています)
int PlaySoundMem( int SoundHandle, int PlayType, int TopPositionFlag = TRUE );
というわけで、「たく」さんが掲載されたプログラムを正常に動作
するように手を加えさせて頂きますと以下の様になります。
int OGGHnd,i ;
OGGHnd = LoadSoundMem("music.ogg") ;
i = SetSoundCurrentTime(23000,OGGHnd) ;
PlaySoundMem(OGGHnd,DX_PLAYTYPE_LOOP,FALSE ) ;
また、Ogg Vorbis 形式の場合 SetCreateSoundDataType 関数で
DX_SOUNDDATATYPE_MEMNOPRESS 以外を指定していると SetSoundCurrentTime 関係の
再生位置設定関数を使用しても再生位置が変更されないようになっていましたので、
もし DX_SOUNDDATATYPE_MEMNOPRESS 以外をお使いでしたらお手数ですが以下の
修正バージョンをお使いください。m(_ _)m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
|
Re: 機能要望:音ファイルの時間指定関連 ( No.4 ) |
- 名前:「たく」 日時:2007/04/17 20:46
丁寧な解説、ありがとうございました。
ちょっと他の部分の実装が立て込んでいて、
修正バージョンをダウンロードした段階で
止まっています。(^^;)
上記の説明でよく理解できましたので、
是非次回のバージョンアップの際にでも
上記修正を含めたものをリリースして
いただければ幸いです。
|
Re: 機能要望:音ファイルの時間指定関連 ( No.5 ) |
- 名前:管理人 日時:2007/04/18 12:18
「たく」さんどうも、DXライブラリの管理人です。
> 是非次回のバージョンアップの際にでも
> 上記修正を含めたものをリリースして
> いただければ幸いです。
はい、近いうちに正式版としてアップすると思います。
|