トップページ > 記事閲覧
Android版のSetCurrentPositionSoundMemについて
名前:ギウ 日時: 2021/07/15 09:15

お世話になっております。 Android版の Ver 3.22c でビルド(Android Studioで)したところ、 SetCurrentPositionSoundMem がリンクできない的なエラーが出ました。(ここをコメントアウトすると通ります) 何か変更等あったでしょうか。
メンテ

Page: 1 |

Re: Android版のSetCurrentPositionSoundMemについて ( No.1 )
名前:管理人 日時:2021/07/15 22:44

手元でDXライブラリAndroid版のサンプルプログラム実行用のプロジェクトのコードに SetCurrentPositionSoundMem( 0, 0 ) ; を追加してビルドしてみましたが、リンクエラーは発生せずプログラムを実行することができました こちらの暫定最新版では正常にビルドできるのかもしれませんので、よろしければお試しになってみてください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibAndroidTest.zip // Android版
メンテ
Re: Android版のSetCurrentPositionSoundMemについて ( No.2 )
名前:ギウ 日時:2021/07/16 09:57

ご確認ありがとうございます。 上記を入れたり、AndroidStudioをアップデートするなどしてみましたが変わりませんでした。 =========== CMakeFiles/native-lib.dir/Sound.cpp.o: In function `SE::Play(int, int, int)': C:/*************/and_proj/app/src/main/cpp/Sound.cpp:490: undefined reference to `DxLib::SetCurrentPositionSoundMem(long long, int)' clang++: error: linker command failed with exit code 1 (use -v to see invocation) ninja: build stopped: subcommand failed. =========== 関係ないかもですが、  Active Build Variant は release  Active ABI は arm64-v8a にしています。
メンテ
Re: Android版のSetCurrentPositionSoundMemについて ( No.3 )
名前:ギウ 日時:2021/07/16 20:45

あと別件のファイルの読み込みが重かった件ですが、原因はseek速度だったようです。 (圧縮ファイルをseekしながら読み込んでる為) 原因として考えられるのは、Androidの新仕様で(?)元データ自体が圧縮されてる影響でしょうか? なので最初に全ファイルを読み込んで、そのデータから取得するようにしたら良い感じになりました^^ ご報告ということで。
メンテ
Re: Android版のSetCurrentPositionSoundMemについて ( No.4 )
名前:管理人 日時:2021/07/18 02:51

> 上記を入れたり、AndroidStudioをアップデートするなどしてみましたが変わりませんでした。 > 関係ないかもですが、 >  Active Build Variant は release >  Active ABI は arm64-v8a > にしています。 うーん、謎ですね… 私も手元で arm64-v8a で以下のようなプログラム ( サンプルプロジェクト実行用フォルダ( Android Studio 用の名前は『RunSampleFolder_AndroidStudio』) の初期状態のプログラムに SetCurrentPositionSoundMem( 0, 0 ) ; を追加しただけのもの ) をビルドしてみたのですが、問題なくビルドされました… #include "DxLib.h" // プログラムは android_main から始まります int android_main( void ) { if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1 ; // エラーが起きたら直ちに終了 } DrawBox( 220, 140, 420, 340, GetColor( 255,255,255 ), TRUE ) ; // 四角形を描画する SetCurrentPositionSoundMem( 0, 0 ) ; WaitKey() ; // キー入力待ち DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 } ギウさんの環境でも上記のプログラムであれば正常にビルドできますでしょうか? > あと別件のファイルの読み込みが重かった件ですが、原因はseek速度だったようです。 > (圧縮ファイルをseekしながら読み込んでる為) >  > 原因として考えられるのは、Androidの新仕様で(?)元データ自体が圧縮されてる影響でしょうか? すみません、原因は分かりませんが、お察しの通りかもしれません ( Androidのapkファイルは実際は拡張子を zip から apk に変えただけの zip圧縮された ファイルなので、seekするにも圧縮データを都度解凍する必要がある…? )
メンテ
Re: Android版のSetCurrentPositionSoundMemについて ( No.5 )
名前:ギウ(解決) 日時:2021/07/21 22:21

>ギウさんの環境でも上記のプログラムであれば正常にビルドできますでしょうか? やはり SetCurrentPositionSoundMem( 0, 0 ) ; でエラーになってしまします。 使わなくても対処可能なので、Android版では使わない感じでいきます! >ファイルなので、seekするにも圧縮データを都度解凍する必要がある…? っぽいですよね、了解です! これも解決ということで。 ゲームの方も無事、更新できました^^ 諸々ありがとうございます!
メンテ

Page: 1 |

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

   クッキー保存