Re: Android版にて、非同期読み込み中のサウンドを操作するとクラッシュする ( No.1 ) |
- 名前:TAKU 日時:2022/03/28 22:59
一応自己解決できましたが、修正にかなりの時間がかかってしまいました。
問題点の詳細は、非同期読み込み中のサウンドに GetCurrentPositionSoundMem を行うと
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xa8 in tid 11002 (Thread-31), pid 10914 (.example.rhythm)
などの例外が投げられて、アプリが異常終了します。
この時に大抵の場合はスタックトレースの取得が出来ません。5〜6時間ほどデバッグをしていて一度だけ、スタックが拾えたので今回の問題修正が出来ました。
管理人さん
Android版 DxLib で非同期読み込み中のサウンドに対して GetCurrentPositionSoundMem を行った場合の仕様はどのようになっていますか?
例外を投げる形でしょうか?
例外を投げてアプリが異常終了した場合は、スタックトレースが拾えないため問題の修正が難しいです。
問題個所の特定が簡単になる方法はないでしょうか?(非同期読み込み中にアクセスされたら、スタックトレースなどを logcat に出力して例外を投げるなど。。。)
|
Re: Android版にて、非同期読み込み中のサウンドを操作するとクラッシュする ( No.2 ) |
- 名前:管理人 日時:2022/03/29 02:45
原因調査が大変だったようで申し訳ありません
> Android版 DxLib で非同期読み込み中のサウンドに対して GetCurrentPositionSoundMem を行った場合の仕様はどのようになっていますか?
> 例外を投げる形でしょうか?
すみません、『非同期読み込み中のサウンド』というのは SetUseASyncLoadFlag( TRUE ); で非同期読み込みを
ONにした状態で LoadSoundMem で非同期読み込みを実行して、且つその LoadSoundMem の非同期読み込みが終わる前の状態の
サウンドハンドルのことでしょうか?
GetCurrentPositionSoundMem に非同期読み込みが終了する前のサウンドハンドルを渡した場合は
何もせずに -1 を返すようになっている筈ですが…
|
Re: Android版にて、非同期読み込み中のサウンドを操作するとクラッシュする ( No.3 ) |
- 名前:TAKU 日時:2022/04/04 00:14
管理人さん
お疲れ様です。
最小のテストコードのみで試してみたところ、バグは再現しませんでした。
発生条件がかなり複雑のようです。。。
問題が再現しましたら、再度ご報告したいと思います。
別件ですが、Android Studio でブレークポイントを置き処理を一時停止すると、サウンドの再生が止まる&再生が出来なくなることがあります。
こちらは既知問題でしょうか?
|
Re: Android版にて、非同期読み込み中のサウンドを操作するとクラッシュする ( No.4 ) |
- 名前:管理人 日時:2022/04/05 01:30
> 最小のテストコードのみで試してみたところ、バグは再現しませんでした。
> 発生条件がかなり複雑のようです。。。
> 問題が再現しましたら、再度ご報告したいと思います。
了解です
お手数をお掛けしてすみません
> 別件ですが、Android Studio でブレークポイントを置き処理を一時停止すると、サウンドの再生が止まる&再生が出来なくなることがあります。
> こちらは既知問題でしょうか?
いえ、今回 TAKUさんにご指摘されて初めて知りました
調べたところ、ブレークポイントなどで処理を一時停止すると一時停止解除後に
『サウンドの再生は正常に行われている』という状態を Open SL が返すにも関わらず
再生するサウンドのデータが要求された際に呼ばれるコールバック関数が呼ばれなくなることがあるようです
対策として
『一定時間コールバック関数が呼ばれなかったら異常な状態を判断してサウンド再生用のインターフェイスを再初期化する』
という処理を追加したところ一時停止解除後にサウンドの再生が止まる現象は発生しなくなりました
その変更を加えたバージョンをこちらにアップしましたので、よろしければお試しください m(_ _;m
https://dxlib.xsrv.jp/temp/DxLibAndroidTest.zip // Android版
|
Re: Android版にて、非同期読み込み中のサウンドを操作するとクラッシュする ( No.5 ) |
- 名前:TAKU 日時:2022/04/08 01:22
管理人さん
サウンドの再生が止まる現象は確認できなくなりました。
ありがとうございます。
|