HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0717
しまくろねこHSP3Dishでのmmloadについて(読み込めるリソース数について)5解決


しまくろねこ

リンク

2017/7/17(Mon) 22:01:32|NO.80646

今現在作成中のものがプログラム起動時に、必要な分のwavファイルをmmloadで読み込んでいるのですが、assetsフォルダ内に格納されているwavファイルをmmloadで読み込む個数がある一定以上を超えるとAndroid実機で「問題が発生したため○○を終了します」と強制的に落ちてしまいます。(Windows側は正常に動作しています)

そこで何個以上mmloadでwavファイルを読み込むとAndroid実機で落ちるか検証してみましたが、どうやら30を超えたところで落ちるようです。
下記はテストとして1つの「test.wav」という5KBのファイルをバッファ番号0から順に読み込ませるだけのソースです。
私のAndroid実機では30個までが限界でした。

#include "hsp3dish.as" redraw 0 color 0, 0, 0 : boxf repeat 30 mmload "test.wav", cnt, 0 mmvol cnt, 0 loop color 255, 255, 255 mes "OK" redraw 1 await 16 stop
長々と書いてしまいましたが、もし制限があるとしたらプログラムを実行しているAndroid実機側のメモリ等に左右されるのでしょうか?


環境
HSP:3.5b5(b5aは新規プロジェクトのビルドが通らなかったので一つ前のb5を使用)
JDK:1.8
SDK:25.2.5
NDK:r12b
ANT:1.10.1
Android実機:Nexus7(2012)4.4.4



この記事に返信する


リンク

2017/7/18(Tue) 20:56:27|NO.80653

HSP:3.5b5b
JDK:1.8.0
SDK:25.2.5
NDK:r12b
ANT:1.9.6
Android実機:Nexus7(2013)4.4.2
で、30個は通って31個にすると「問題が発生したため終了しました」でした



しまくろねこ

リンク

2017/7/18(Tue) 21:31:08|NO.80655

こんにちは。

>撃さん
テストありがとうございます。
31個目でエラー。同じですね。
assetsフォルダにwavファイルを沢山入れてもmmloadで読まなければ大丈夫なのに、mmloadで読み込むと31個目で「問題が発生したため」で落ちてしまうんですよね。
効果音に色々なものを使いたかったので困りました。
とりあえずおにたまさんに連絡したいと思います。



おにたま(管理人)

リンク

2017/7/19(Wed) 21:24:52|NO.80665

ご報告ありがとうございます。
こちらでも確認して、不具合であれば今後修正していきたいと思います。



おにたま(管理人)

リンク

2017/7/21(Fri) 21:11:39|NO.80683

不自由をお掛けしてすみません。
少し調べてみたのですが、android上のOpenSL/ES上の制約があって同時にスレッドが作成できないようです。
mmloadで音声を読み込んだ段階で、すぐに再生可能な状態にしているのですが、HSP3Dishのシステム側で、同時に発音する時だけにするような仕組みを入れないと大量の効果音を保持するのが難しいかもしれません。
今後、この問題は修正していきますが、構造の変更が必要になるため、すぐに対応が難しいかと思います。
とり急ぎは、mmloadで使用するバッファの数を必要に応じて切り替えるなどして30以下に抑えるようお願い致します。
(特に音楽の再生などは、同時に行なう必要がないので1つのバッファIDを共有するようにした方がいいです)
これは、android上だけの制限なので、WindowsやiOS上では問題ありません。



しまくろねこ

リンク

2017/7/22(Sat) 10:21:13|NO.80687

>おにたま(管理人)さん

色々無理言って申し訳ありません。
なるほどです了解いたしました。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.80646への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

ONION software Copyright 1997-2017(c) All rights reserved.