トップページ > 記事閲覧
WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます
名前:あいおい? 日時: 2020/05/03 14:22

以下、Mediainfoの出力です。 ==== フォーマット : Wave サイズ : 35.6 MiB ながさ : 2分 20秒 OBR モード : CBR モード オーバルビットレート : 2 117 Kbps 使用したエンコーダ : LMMS (libsndfile-1.0.26pre5) オーディオ フォーマット : PCM 設定 : Little / Signed コーデック ID : 1 ながさ : 2分 20秒 ビットレートモード : CBR モード ビットレート : 2 117 Kbps チャンネル : 2 チャンネル サンプルレート : 44.1 KHz BitDepth/String : 24 ビット ストリームサイズ : 35.6 MiB (100%) ==== このような、24bitなPCM音源を再生すると、正常に再生されず、ノイズ混じりの音声になってしまいます。 DirectSound使用時にはこのような問題は発生しません。 WASAPI共有モード、排他モードどちらでも発生します。
メンテ

Page: 1 |

Re: WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます ( No.1 )
名前:管理人 日時:2020/05/03 22:00

すみません、少し前に 24bitのサウンドが正常に再生できないバグを修正しましたので、 よろしければこちらの修正バージョンをお試しになってみてください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます ( No.2 )
名前:green 日時:2020/05/05 05:54

あいおいさんの意図とは外れてしまいますが 管理人さんの修正バージョンを使用してみましたところ。 実行デバッグ時、ウィンドウが初期表示される時に一瞬、左端と下端に白枠が(0.5秒程度)表示される という症状がみられます。 これは以前のバージョンではみられなかったものです。 管理人さんの環境ではこの現象はみられますか?
メンテ
Re: WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます ( No.3 )
名前:green 日時:2020/05/05 06:26

すいません、追記になってしまいますが、windows10タスクバーを縦型にして 右端か左端に縦型になるように配置するとこの症状がみられるようです。
メンテ
Re: WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます ( No.4 )
名前:あいおい? 日時:2020/05/05 14:22

> すみません、少し前に 24bitのサウンドが正常に再生できないバグを修正しましたので、 > よろしければこちらの修正バージョンをお試しになってみてください m(_ _;m こちらのテスト版で24bit音源の再生に不具合が生じる問題は改善しました。ありがとうございます。 > 実行デバッグ時、ウィンドウが初期表示される時に一瞬、左端と下端に白枠が(0.5秒程度)表示される > という症状がみられます。 タスクバーを左に表示させてみたところ、同じような症状が現れました。 そのあと下に戻してみましたが、表示の出方は違うものの、一瞬白い四角形が表示されるようになりました……
メンテ
Re: WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます ( No.5 )
名前:管理人 日時:2020/05/06 01:50

> すいません、追記になってしまいますが、windows10タスクバーを縦型にして > 右端か左端に縦型になるように配置するとこの症状がみられるようです。 > タスクバーを左に表示させてみたところ、同じような症状が現れました。 > そのあと下に戻してみましたが、表示の出方は違うものの、一瞬白い四角形が表示されるようになりました…… ご指摘ありがとうございます 最近行ったウィンドウサイズ関連の処理の変更が原因でした 修正版をアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます ( No.6 )
名前:green 日時:2020/05/06 03:44

白枠の件、ご対応ありがとうございます。 とはいうものの試してみた所、症状は変化せずに同様に 白枠の一部が0.5秒程度表示されてしまいます。 タスクバーがデスクトップ左端にある時右横と下に矩形白枠の一部が表示されます タスクバーがデスクトップ下部にある時、矩形白枠は表示されません タスクバーがデスクトップ上部にある時、下部端に白線が表示されます タスクバーがデスクトップ右端にある時左横と下に矩形白枠の一部が表示されます このような状況です
メンテ
Re: WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます ( No.7 )
名前:あいおい? 日時:2020/05/06 16:55

> ご指摘ありがとうございます > 最近行ったウィンドウサイズ関連の処理の変更が原因でした > > 修正版をアップしましたので、よろしければお試しください m(_ _;m greenさんと同様の症状が出ますね……しかし、こちらではタスクバーが下にあっても白い枠が表示されます。 (2段タスクバーなのでちょっと特殊なのかもしれませんが) 環境固有の症状かもしれないので、大雑把な環境を書きます: Windows 10 Pro Ver.2004 GTX 1060 6GB NVIDIA 445.87 1920x1080 144Hz、1600x1200 60Hz タスクバー: 2段、アイコンサイズ小、下に配置
メンテ
Re: WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます ( No.8 )
名前:green 日時:2020/05/06 19:25

あいおいさんご情報をありがとうございます 環境により依存しそうではありますね。 一応こちらでも環境を書いておきます Windows10 pro gtx1080 デスクトップ4K(3840x2160)150%設定 タスクバー右縦型(幅サイズ適当アイコンサイズ小1段)
メンテ
Re: WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます ( No.9 )
名前:管理人 日時:2020/05/06 20:00

> あいおい?さん、greenさん すみません、修正した計算式が誤っていて『拡大・縮小設定 200%』の場合でないと 修正が反映されない状態になっていました( double で計算すべきところを int で計算していました… ) 再度修正したバージョンをアップしましたので、何度も申し訳ありませんが よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます ( No.10 )
名前:green 日時:2020/05/06 21:46

管理人さん修正ありがとうございます。 すいません、デバッグ実行してみたところ残念ながら変化がみられない ようでした。変わらず白い枠線が出てきてしまいます。 挙動的な意味で例えると最初に質問した時と同じ状態であると考えていまして 少なくともこちらの環境ではタスクバー上、右、左でこの症状が再現されます。 管理人さんの環境ではこの症状は確認できますか?
メンテ
Re: WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます ( No.11 )
名前:管理人 日時:2020/05/06 23:36

> greenさん > すいません、デバッグ実行してみたところ残念ながら変化がみられない > ようでした。変わらず白い枠線が出てきてしまいます。 今回は本当に変更が少ないので『リビルド』しないと変更が反映されない可能性があるのですが、 『リビルド』しても白い枠線が出てしまいますでしょうか? > 挙動的な意味で例えると最初に質問した時と同じ状態であると考えていまして > 少なくともこちらの環境ではタスクバー上、右、左でこの症状が再現されます。 > 管理人さんの環境ではこの症状は確認できますか? 修正版ではタスクバーを上・右・左に移動した状態で実行しても症状は確認できませんでした
メンテ
Re: WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます ( No.12 )
名前:green 日時:2020/05/07 00:44

なるほどです。管理人さんの環境では問題無いということですね。 リビルドについて 最初にそのような事態も考えてリビルドを行いました。 それで変化ががなかったので、x64ディレクトリも削除して 更にリビルド>変化なし。ついでに2、3回リビルド>変化なし という感じでした。 #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // ウインドウモードに変更 SetGraphMode(1920,1080, 32 ) ; ChangeWindowMode( TRUE ) ; SetEnableWASAPIFlag(false); SetEnableASIOFlag(false); SetEnableXAudioFlag(true); SetUseDirectInputFlag(FALSE); SetWindowSizeExtendRate( 1.0f ) ; SetEnableXAudioFlag( TRUE ); SetWindowSizeChangeEnableFlag(true,true); if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } while ( ProcessMessage() == 0 && ClearDrawScreen() == 0 ) { } DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 }
メンテ
Re: WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます ( No.13 )
名前:あいおい? 日時:2020/05/07 02:25

こちらでは、ウィンドウサイズと内部解像度(GraphMode)の大きさが等しければ、白い枠が表示されずに起動できるのが確認できました。 いつもはSetWindowSizeExtendRateを使って縮小していたので、気づきませんでした…… Windows 10 Ver.2004なので、現行の1909とはまた挙動が異なるかもしれません(グラフィック周りでだいぶ仕様が変わりましたし) greenさんの環境に関しては、150%スケールが入ってるので、DPI関係の問題である可能性もあるかもしれません ともあれDXライブラリが想定したウィンドウサイズと異なる場合にこの現象が発生するような気がします (タスクバーの位置と関連がなくなってしまいますが)
メンテ
Re: WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます ( No.14 )
名前:green 日時:2020/05/07 14:49

あいおいさん >greenさんの環境に関しては、150%スケールが入ってるので、DPI関係の問題である可能性もあるかもしれません Windows 10でディスプレイの表示スケールの設定を150%に変更して見やすくする 設定を行っています。これは数年前から同じ設定にしておりまして 「最近行ったウィンドウ関係の修正」が入るまではモニタ固有のスケーリングにも 対応できていたようにみえました。 >こちらでは、ウィンドウサイズと内部解像度(GraphMode)の大きさが等しければ >、白い枠が表示されずに起動できるのが確認できました。 了解です。ということはその他のサイズ、例えばデスクトップ1920x1080の時に640x480のSetGraphModeを与えた場合 白枠が表示される症状がみらられるということですよね。 #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // ウインドウモードに変更 SetGraphMode(640,480, 32 ) ; ChangeWindowMode( TRUE ) ; SetEnableWASAPIFlag(false); SetEnableASIOFlag(false); SetEnableXAudioFlag(true); SetUseDirectInputFlag(FALSE); SetWindowSizeExtendRate( 1.0f ) ; SetMouseDispFlag(false); SetWindowSizeChangeEnableFlag(true,true); SetAlwaysRunFlag(true); if( DxLib_Init() == -1 ) { return -1; } while ( ProcessMessage() == 0 && ClearDrawScreen() == 0 ) { ClearDrawScreen(); ScreenFlip() ; } DxLib_End() ; return 0 ; }
メンテ
Re: WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます ( No.15 )
名前:管理人 日時:2020/05/07 17:19

> greenさん 再現用のプログラムありがとうございます 載せていただいたプログラムでは手元の環境でも症状が確認できました 再度処理の一部を変更してみましたので、本当に何度も申し訳ありませんが よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) > あいおい?さん 私も手元の環境は Ver.1909 なので、よろしければあいおい?さんの環境でも↑のバージョンが 正常に動作するか試してみてください m(_ _;m
メンテ
Re: WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます ( No.16 )
名前:あいおい? 日時:2020/05/07 18:54

> 私も手元の環境は Ver.1909 なので、よろしければあいおい?さんの環境でも↑のバージョンが > 正常に動作するか試してみてください m(_ _;m こちらのテスト版を使用したところ、起動時になんの問題もなく動作するようになりました。 ありがとうございます! あとは高DPIな環境でも問題なければ、完璧だと思います……!
メンテ
Re: WASAPI 使用時に24bitなWAVEファイルを使用すると再生に不具合が生じます ( No.17 )
名前:green(解決) 日時:2020/05/07 20:08

管理人さんご対応ありがとうございました。 リビルドを試したところ最初に質問した白枠に関しては修正できているように見えます。 タスクバーも位置や幅を変化させてみましたが正常に対応できているようです。 ということでここでひとまず枠の件は解決とさせていただきます。 あいおいさん管理人さんご協力いただきありがとうございました。
メンテ

Page: 1 |

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

   クッキー保存