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


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0411
sin音が鳴らない7解決


sin

リンク

2020/4/11(Sat) 20:31:53|NO.90063

自分はHspDishでゲームを作っています。
Androidでも動く様にテストしながら作っています。
ゲームの途中で音を鳴らしているのですが、鳴らない時があります。
mmload,mmplayで鳴らしています。
Windowsでは必ず鳴っているのですが、Androidでは鳴らない時があります。
再現は出来ないのですが、
アプリを沢山開いてから自分のゲームで鳴らそうとした時な様な気がします。
何故、起こるのでしょうか?
そしてどの様に対処すれば良いのでしょうか?



この記事に返信する


セカイノカナタ

リンク

2020/4/23(Thu) 21:07:46|NO.90163

正直、Dishについては初心者程度の知識しかありません。
なので、「恐らく」という感じにはなりますが。
ご存じの通り、mmplay,mmstopは同時に音を鳴らせないという性質があります。
それが関係しているかもしれません。
もしくはメモリーのオーバーフローによって正常な作動をしないということかもしれません(可能性としては低いですが。)
Windowsならmciを使えばいいんですが、Androidとなると...
ごめんなさい、対処方法については何も言えません。



セカイノカナタ

リンク

2020/4/23(Thu) 21:10:04|NO.90164

追記です。
いろいろ考えてみましたが、メモリーのオーバーフローかもしれません。
実際自分も同じようなことをしてみました。
すると、同様の現象が発生しました。



sin

リンク

2020/4/24(Fri) 00:31:56|NO.90165

返信、ありがとうございます。
たまにその現象が出てどうすると出るか、わかりませんでした。
音ファイルの品質を落としたらその現象は出なくなったのでやはりメモリなのかと思います。
そう言うのってどう対処するものなのでしょうか?
メモリの空きを調べて「メモリが少ないですよ」とエラーを出す?
でも、そんなアプリは見たことない。
余計な物を解放する?
ユーザに諦めてもらう?
とりあえず解決した?事にします。



mkt

リンク

2020/4/25(Sat) 09:33:45|NO.90171

お疲れ様です。
解決済みとのことですが、Androidの音には私も悩んだことがあるので
書かせていただきました。

Androidでmmplayを使うときはこんな特性があります。
・mp3とwavは同時に流れるが、同じ拡張子同士は前の音が消える。
・読み込みにかかる時間は機種によって違う。

メモリが…とのことでしたが
もしかすると、mmloadの直後にmmplayが入っているのではないでしょうか。
流れるときもあるということは、データの仕様には問題がないように思います。
音のデータを小さくして大丈夫だったのも、読み込みが間に合うようになった
だけでは…と


私の場合は、mmloadで読み込んだあとは、一度[await]を挟んで
ルーチンの次の周以降にmmplayをするようにしています。

あと、自作の曲を使うときは頭の0.5秒くらいをブランクにしています。
でないと、流れた瞬間の音量が異常に大きくなる機種があるので

余談ですが、mp3では音楽、wavでは効果音を作っていました。
そこで、頻繁に再生が行われるwavは、起動時にすべてmmloadでそれぞれにバッファ
を当ててしまっていました。音が短いのでメモリもそんなに使いませんし、一度読み込んでおけば
再生は一瞬です。

長文失礼しました。



sin

リンク

2020/4/25(Sat) 14:54:25|NO.90179

mkt様、返信、ありがとうございます。

>あと、自作の曲を使うときは頭の0.5秒くらいをブランクにしています。
でないと、流れた瞬間の音量が異常に大きくなる機種があるので
これは知りませんでした。
勉強になります。

自分も起動時にmp3(BGM),wav(効果音)を読ませ、タイトル画面、await、ゲーム画面と
進めています。
それなのでawaitは関係なさそうな気がします。

以前はゲームクリア音楽(mp3)が鳴り終わったら次のステージと作成していたのですが
鳴らない時の事も考えてタッチしたら次のステージに行く事にしました。
mp3の音質を落として600KBから200KBくらいにした所、音が鳴らない事は減りました。

色々と有難うございます。



窓月らら

リンク

2020/5/25(Mon) 12:54:11|NO.90633

AndroidのHSP3Dishは以下のような制限(Windows版との違い)を確認しています。

・同じIDの音を連続で鳴らそうとしてもうまくいかない
・mp3はAndroidではミックスできる、Windowsではできない
・音声データの頭0.03秒〜程度を無音にしておかないと頭が再生されないことがある
・端末のミュート機能により、慣らし始めがうまく発音されないことがある
・一定数以上の素材を mmload で登録できない(仕様です)

ミュート機能については端末によるので、出ない環境もあります。
これは何も再生していないときに省電力のために自動的に発動する機能ですが、
これを無効化する方法として、無音(3秒とか10秒とかのデータ)を
ずっとループ再生すれば解決します。省電力は捨てることになりますが。

連続で慣らしたい場合(例えばシューティングのショット音など)は
複数のIDに登録して順番に再生する方法くらいしかありません。



sin

リンク

2020/5/26(Tue) 00:14:56|NO.90640

窓月ららさん、教えてくれてありがとうございます。
知らなかった事が、たくさんありました。



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