トップページ > 記事閲覧
Android版:FileRead系について
名前:PPM 日時: 2018/02/25 21:27

Android版のFileRead検索系関数で、assets内のフォルダを拾わないように思います。 例えば assets Folder1 Folder2 file1 file2 file3 Folder4 file6 Folder3 file4 file5 のようになっていて、 FileRead_findFirst("Folder1") FileRead_findFirst("Folder1/") FileRead_findFirst("Folder1/*") FileRead_findFirst("Folder1/*.*") のいずれでも -1 になります。(Folder2、3を拾わない) FileRead_findFirst("Folder1/Folder2/*.*") とした場合はファイルfile1を拾い、 FileRead_findNextでfile2〜3を拾いますが、Folder4は拾いません。 バージョンは最新ARM/x86 TEMP版です。(※マニフェストにREAD追加済) ちなみに assets ではなく /storage/emulated/0/AAA/ のようなアドレスに対して実行すると "." と ".." のみ拾い、次に来るはずの "FOLDER" を拾いません。
メンテ

Page: 1 |

Re: Android版:FileRead系について ( No.1 )
名前:管理人 日時:2018/02/26 01:03

> Android版のFileRead検索系関数で、assets内のフォルダを拾わないように思います。 assets 以下にあるフォルダと、それ以外のフォルダではファイルシステムが異なるのですが、 assets 以下にあるフォルダのファイル検索機能ではフォルダは検出できないようです なので申し訳ありませんが仕様となります ( ただ、assets 以下にあるファイルでも、DXアーカイブファイルに含まれるフォルダ内のフォルダは 検出されます( この場合DXアーカイブの仕様に沿うので ) ) > ちなみに assets ではなく /storage/emulated/0/AAA/ のようなアドレスに対して実行すると > "." と ".." のみ拾い、次に来るはずの "FOLDER" を拾いません。 手元の環境( F-02H )で "/storage/emulated/0/Android/*" で検索したところ . .. data DTV media obb が検出されました( data, DTV, media, obb はすべてフォルダ ) PPMさんが例に示された /storage/emulated/0/AAA/ の中の構成はどのようになっているのでしょうか?
メンテ
Re: Android版:FileRead系について ( No.2 )
名前:PPM 日時:2018/02/27 18:28

後者については "/storage/emulated/0/AAA/*"ではなく"/storage/emulated/0/AAA/*.*"で検索したためでした。 Windows APIのFindFirstFileは"*.*"でもフォルダを拾うのでうっかり同じ指定をしていました。すみません。 assetsの件も了解しました。 Android版を使ってまだ少しですが、いろいろな点でつまずきながら進んでます。 調べたネタ+最近の掲示板での情報を合わせるとこんなところでしょうか。(UTF8とか大文字小文字は省略) ・assetsの中は _ (アンダーバー) で始まるフォルダは無視される ・std::threadを使うにはコマンドラインオプションに -std=c++11 を追加する ・Windows版と違い、スレッド中でScreenFlipすると一発で落ちる (VSエミュレーターごと落ちた) ・VSエミュレーターはかなり速いので下手にこれで最終調整すると実機で泣きを見るかも ・とはいえ、高速PCでは余裕な1080p OGVを再生するとVSエミュレーターでは13fps程度、古い実機では1fps未満になる ・MMDデータ内のテクスチャファイル名と実テクスチャファイルの大文字小文字全角文字にも気を付ける ・ClearDrawScreenをせずにMMDを描画するとほっぺのあたりが透過するものがある ・MP3やMP4などは対応していない(※仕様ページに書いてある) ・同時発音は15までの模様 ・android_main()をreturn 0で抜けても終了しない(※マニュアルに書いてある) ・VSエミュレーターで動いても実機ではMMDのテクスチャが抜けたりモアレ状になったりするものもある ・GetExternalDataPathが取得できない端末もある ・LoadGraphなどはassets以外からも読めるように改良していただいた ・assetsの中はfopen()などは使えない。例えば.txtはFileRead系で読む ・assetsの中ではFileRead系でフォルダは検索できない(そもそも検索系はマニュアルに無い) ・SetFullSceneAntiAliasingModeはリファレンスではAndroidに 〇 はついていないが関数自体はある(効いているのかは不明) ・マニフェストに <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> を追加するとSDカード読み込みもOK ・サウンドのループはちょっと間が空く <--- 気のせいでした(訂正)
メンテ
Re: Android版:FileRead系について ( No.3 )
名前:管理人 日時:2018/02/27 00:25

載せていただいたご情報の中から幾つか補足、又はご質問させてください > ・assetsの中は _ (アンダーバー) で始まるフォルダは無視される こちらは知りませんでした、ご情報ありがとうございます > ・Windows版と違い、スレッド中でScreenFlipすると一発で落ちる (VSエミュレーターごと落ちた) Windows版でも DxLib_Init を呼んだスレッド以外のスレッドでのDXライブラリの関数の呼び出しは動作の保証外なのでご注意ください > ・SetFullSceneAntiAliasingModeはリファレンスではAndroidに 〇 はついていないが関数自体はある(効いているのかは不明) Android版では関数は呼べますが効果はありません > ・サウンドのループはちょっと間が空く CPU の速度が足りていればサウンドのループで間が空くことはありません PPMさんが試された場合でもループの際に間が空いてしまうのでしょうか?
メンテ
Re: Android版:FileRead系について ( No.4 )
名前:PPM(解決) 日時:2018/02/27 18:37

サウンドの件ですが、確認したところこちらのミスでした。またまたすみません。(訂正しました) Windows版ではタイトルBGMのみMP3を使っていましたが、Android版ではMP3が使えないためOGGに変換しました。 変換時にデータのラストあたりが少しイマイチになった模様です。 (Windows版をOGGに差し替えたらAndroid版と同じ再生状態になったので、ループ機能自体はOKと判明)
メンテ
Re: Android版:FileRead系について ( No.5 )
名前:管理人(解決) 日時:2018/02/28 09:45

> Windows版ではタイトルBGMのみMP3を使っていましたが、Android版ではMP3が使えないためOGGに変換しました。 > 変換時にデータのラストあたりが少しイマイチになった模様です。 なるほど、元が MP3 だったのですね MP3 は圧縮されたデータ( フレーム )が連なる方式なのですが、一つのデータ( フレーム )のサンプル数が固定( 幾つかの種類はありますが )なので サウンドファイル全体の総サンプル数が丁度そのサンプル数のn倍の数ではない場合、合わなかった数の分だけ無音のサンプルが末尾に追加されてしまうのですよね・・・ ( なのでループすることが前提のゲームの BGM には MP3 は向いていません・・・ ) OGG はそのようなことが無いので、圧縮率は同じくらいかもしれませんが、ゲームの BGM には OGG の方が向いています
メンテ

Page: 1 |

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

   クッキー保存