音楽を停止した位置から再生するには・・・?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
トゥル太郎

音楽を停止した位置から再生するには・・・?

#1

投稿記事 by トゥル太郎 » 15年前

お世話になっております。
現在、東方っぽいゲームを制作しております。
一時停止で困ったことがおこってしまいました。

一時停止すると音楽を停止し、一時停止解除時に、停止した位置から再生したいと思っています。
今行っている方法は
一時停止すると、
流れている音楽をStopSoundMem(area.bgm.handle);を行って停止します。
一時停止を解除すると
PlaySoundMem(area.bgm.handle,DX_PLAYTYPE_LOOP);を行って、
音楽を再生してみたのですが、最初から再生されてしまいました。

一時停止を解除すると、音楽が停止した位置から、再生されるという風にするにはどうすればいいのでしょうか。

DXライブラリのリファレンスを見ましたが、途中位置を取得するという関数が無かったので
ヘッダファイルを覗いてみると、それらしきものがありましたが、これらを使用するのでしょうか。

extern int SetSoundCurrentPosition( int Byte, int SoundHandle ) ;
// サウンドハンドルの再生位置をバイト単位で変更する(再生が止まっている時のみ有効)

extern int GetSoundCurrentPosition( int SoundHandle ) ;
// サウンドハンドルの再生位置をバイト単位で取得する

extern int SetSoundCurrentTime( int Time, int SoundHandle ) ;
// サウンドハンドルの再生位置をミリ秒単位で設定する(圧縮形式の場合は正しく設定されない場合がある)

extern int GetSoundCurrentTime( int SoundHandle ) ;
// サウンドハンドルの再生位置をミリ秒単位で取得する(圧縮形式の場合は正しい値が返ってこない場合がある)

Dixq (管理人)

Re:音楽を停止した位置から再生するには・・・?

#2

投稿記事 by Dixq (管理人) » 15年前

仰る通りです。
私の知る限りDXライブラリには一時停止なる機能が無いので、必要ならば仰る関数で自作するしかないと思います。
おわかりになるとはおもいますが、停止する時に今の再生位置を記憶し、
再開するときはそこにあわせて再生すればいいわけですね。

チルチル

Re:音楽を停止した位置から再生するには・・・?

#3

投稿記事 by チルチル » 15年前

ん?勘違いだったらすみませんが

PlaySoundMem( BGM , DX_PLAYTYPE_LOOP , FALSE );

で止めた所から再生できると思うのですが・・

トゥル太郎

Re:音楽を停止した位置から再生するには・・・?

#4

投稿記事 by トゥル太郎 » 15年前

Dixq様、チルチル様
お二人とも早速のご意見ありがとうございます。
チルチル様のPlaySoundMemを使用すると途中から再生することができました。
本当にありがとうございます。
完成しましたら、この掲示板で公開させて頂きたいと思います。

Dixq (管理人)

Re:音楽を停止した位置から再生するには・・・?

#5

投稿記事 by Dixq (管理人) » 15年前

な・・に・・!

そんなところに隠れたフラグが。
どうもすみませんでした(_ _|||)

今までずっと自作してましたorz

トゥル太郎

Re:音楽を停止した位置から再生するには・・・?

#6

投稿記事 by トゥル太郎 » 15年前

おぉ…自作とは恐れ入ります。
非公開関数を扱える技術が自分もほしいところです。

閉鎖

“C言語何でも質問掲示板” へ戻る