トップページ > 過去ログ > 記事閲覧
SetLoopPosSoundMem() について
名前:Sura 日時: 2009/01/01 01:17

新年おめでとうございます。 昨年はお忙しいところバグの対応など 誠に有難う御座いました。 と申し上げつつ早速で恐縮いたしますが、バグ?報告いたします。 PlaySoundMem() を DX_PLAYTYPE_LOOP に指定して再生すると SetLoopPosSoundMem() が有効になるのですが、 LoadSoundMem() の前に SetCreateSoundDataType() で DX_SOUNDDATATYPE_MEMPRESS に指定したときに 再生するとループ時に指定した再生位置が僅かにズレる現象が確認されました。 ただし、 DX_SOUNDDATATYPE_MEMNOPRESS では正常に再生されました。 よろしければ、バグであるかどうかご検討願います。 P.S. 確認した概要 再生ファイル: Ogg Vorbis Compiler: VC++2008EE 及び BCC5.5 コードは while(ProcessMessage() != -1) { ... } のようにして、 毎回 ProcessMessage() を呼んでおります。

Page: 1 |

Re: SetLoopPosSoundMem() について ( No.1 )
名前:管理人 日時:2009/01/02 08:40

ご報告ありがとうございます 思い当たるフシはあるのですが、とりあえず手元で試した限りでは ズレることなく正常にループしましたので、申し訳ありませんが幾つかご質問をさせてください 1.ご使用のDXライブラリのバージョンは幾つでしょうか? 2.具体的にどの程度ずれるのでしょうか? 3.ズレる際の SetLoopPosSoundMem に渡す値はなんでしょうか? 4.ズレるサウンドファイルのファイル形式はなんでしょうか? 5.ズレるサウンドファイルの再生時間はどれくらいでしょうか? 宜しければご返答の程、お願いします m(_ _)m
Re: SetLoopPosSoundMem() について ( No.2 )
名前:Sura 日時:2009/01/02 13:35

管理人様 ご返事ありがとうございます。 以下にご質問にお答えいたします。 よろしくお願いいたします。 >1.ご使用のDXライブラリのバージョンは幾つでしょうか? Ver2.25bです ちなみにVer2.24fでは正常に再生されました。 >2.具体的にどの程度ずれるのでしょうか? 微妙なのですが、 0.1〜0.2秒程度(あくまで視聴による確認のため誤差は大きい)です。 >3.ズレる際の SetLoopPosSoundMem に渡す値はなんでしょうか? 一つ例を挙げると再生時間 32376[ms] に対して、 17244([ms]) を与えている。 その数値は DX_SOUNDDATATYPE_MEMNOPRESS では正常にループ再生される。 また、 DX_SOUNDDATATYPE_MEMPRESS に指定して、SetLoopPosSoundMem()を指定する際 たとえば、17176 < 17244 < 17535 範囲で何れも同じ位置でループ再生される。 17536 にすると突如再生位置が変わる。 恐らく2.の回答において、0.1〜0.2秒という意味は 渡す値から、17535 - 17176 = 359 により最大0.36秒のズレが生じると思われる。 この突如再生位置が変わる現象はその幅に多少の違いがあり あるところ(確認したところ17536 < 17929 の範囲変わらない)では0.4秒で在ったりする。 >4.ズレるサウンドファイルのファイル形式はなんでしょうか? FileType: Ogg Vorbis FileSize: 335691 bytes BitPerSample: 16 bits SampleRate: 44100 Hz Mode = Stereo >5.ズレるサウンドファイルの再生時間はどれくらいでしょうか? 32秒376です。
Re: SetLoopPosSoundMem() について ( No.3 )
名前:管理人 日時:2009/01/03 17:15

ご返答ありがとうございます お陰で原因が分かりました 修正版をアップしましたので、宜しければお試し下さい m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)  因みに、動画ファイル形式である Ogg Theora 内の Ogg Vorbis データを参照するために Ogg データを扱うコードに手を加えていたのが原因でした
Re: SetLoopPosSoundMem() について ( No.4 )
名前:Sura 日時:2009/01/04 00:11

管理人様 修正版確認いたしました。 正常に再生されました。 お手数おかけいたしました 誠にありがとうございます。 P.S. >Ogg Theora 内の Ogg Vorbis データを参照するために Ogg データを扱うコードに手を加えていたのが原因でした 私は、Ogg Theora作成ツールなどは持ち合わせていない且つムービーをほとんど使ったことはないのですが、 やはりライセンスのことを考えると充実してほしいですね。 なるほどそういう理由でしたか。 了解いたしました。 あと、本質ではないことですが、 リンク時にogg_static_d.lib関係の警告が出るみたいです。 もしかすると私の設定ミスすかもしれませんが? 出力された警告は以下のとおりです。 1>------ すべてのリビルド開始: プロジェクト: GameWindow, 構成: Debug Win32 ------ 1>プロジェクト 'GameWindow'、構成 'Debug|Win32' の中間出力ファイルを削除しています。 1>コンパイルしています... 1>GameWindow.cpp 1>main.cpp 1>TestGame.cpp 1>コードを生成中... 1>リソースをコンパイルしています... 1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>マニフェストをリソースにコンパイルしています... 1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>リンクしています... 1>ogg_static_d.lib(framing.obj) : warning LNK4099: PDB 'vc60.pdb' が 'C:\Program Files\DxLib_VC\Projectc\ogg_static_d.lib' で、 または 'E:\user\Work\Visual Studio 2008\Projects\GameWindow\Debug\vc60.pdb' に見つかりません。 デバッグ情報がないものとして、オブジェクトにリンクします。 1>vorbis_static_d.lib(bitrate.obj) : warning LNK4099: PDB 'vc60.pdb' が 'C:\Program Files\DxLib_VC\Projectc\vorbis_static_d.lib' で、 または 'E:\user\Work\Visual Studio 2008\Projects\GameWindow\Debug\vc60.pdb' に見つかりません。 デバッグ情報がないものとして、オブジェクトにリンクします。 . . .
Re: SetLoopPosSoundMem() について ( No.5 )
名前: 日時:2009/01/05 11:05

上記はログからVC2008によるコンパイルを 施行したものと思いますが、 vorbis_static_d.libのデバック情報がある VC6のプログラムデータベースが見つからない 為に警告が出ています。 消したければ、vorbis_static_d.libなどの ソースコードを入手し自分でコンパイルした ライブラリを使うとよいかと思われます。 #pdbを含めると要領が数MBと重くなってしまうので...
Re: SetLoopPosSoundMem() について ( No.6 )
名前:管理人 日時:2009/01/13 00:49

> リンク時にogg_static_d.lib関係の警告が出るみたいです。 申し訳ありません、ogg_static_d.lib を作成する際のプロジェクトの設定に誤りがありました 修正版をアップしましたので、宜しければお使い下さい m(_ _;m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
Re: SetLoopPosSoundMem() について ( No.7 )
名前:Sura 日時:2009/01/13 21:58

度々恐縮です。 確認いたしました。 正常にリンクできました。 ありがとうございます。

Page: 1 |