[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 07/22 13:26 / Filesize : 254 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

iモード携帯電話用Java(iアプリ) Part14



1 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 18:13:16 ]
NTT DoCoMoのiモード携帯電話用Javaに関する話題を扱うスレッドです。

※DoCoMo以外は下記スレへ。
CLDC+MIDP+携帯電話用Javaスレッド part 6
pc11.2ch.net/test/read.cgi/tech/1155174514/

■ iアプリ特有ではなくJava一般に関する質問はこちらへ
【初心者】Java質問・相談スレッド99【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1173026128/

■ iモード携帯電話用Java(iアプリ)まとめサイト
ton.my-sv.net/

■関連スレ
【日本携帯】Mascot Capsule/Micro3D【標準】
pc8.2ch.net/test/read.cgi/tech/1117773530/

過去スレ
Part13 ttp://pc11.2ch.net/test/read.cgi/tech/1164168601/


808 名前:805 mailto:sage [2007/07/26(木) 05:39:39 ]
>>806
コンパイルはコマンドプロンプトからオプションつけてやればいいという事でしょうか?DoJaのビルトだとオプションとかつけれなかったような。

809 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 07:42:35 ]
別にDoJaからコンパイルする必要はない。
クラスパスを指定して普通のJavaソースと同じようにコンパイルするだけ。

810 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 12:40:58 ]
つか、最新の開発ツールだと -source 1.3 付けてくれてるみたいだぞ。久々にいじったのでいつからかわからんが、これでjdk1.4とはおさらばできそうだ。

811 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 22:24:49 ]
新しいコンパイラなら最適化も素晴らしくなっているだろう……と思いきや
最近のjavacはJITの存在を念頭に置いてて、あまり最適化しない、むしろ
JITが扱いやすい型にはまったバイトコード生成をするという話も聞く。

812 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 22:56:29 ]
javacがするのは、定数折りたたみ、意味のない式や制御構造の削除とかの簡単なもの。
JITの性能が上がりすぎて、コンパイル時の最適化が効果が薄くなった。
コンパイル時の最適化を期待するにはjavac以外のツールが必要。

813 名前:805 mailto:sage [2007/07/27(金) 04:42:59 ]
>>809>>810
ありがとうございます。
そういや、最近DoJa5.0はVer3になりましたもんね。
それでできるようになったのかな?
以前は1.5だとエラー出てたけど。

814 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 11:17:31 ]
何か今時の話題のようなので報告。
JDK1.5.0_12+iαppliTool 5.0ver3.00 でコンパイル成功してます。
環境変数等、インストールした時のまんまなので標準環境だと思ふ


815 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 02:35:09 ]
DoJaの開発環境は地味ながら継続的に改良されているよね
もうちょっと宣伝すればいいのに

816 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 23:59:39 ]
DXなしでGPSを使用したアプリって作成不可?
端末の位置情報を取得するくらいならできるのかな



817 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 08:31:24 ]
無理

818 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 01:53:36 ]
F904i(マーガレット機種)でjamのDrawAreaの設定について教えてください。
F904iは描画領域が240×432なんですが、
DrawAreaもそれに合わせて240×432にしたところ、
y=392〜411のあたりにソフトキーラベルが浮いて表示されると
ユーザから指摘を受けました。
で、DrawAreaを240×391にしたところ、
今度は「描画領域が相変わらず240×432になっている」と指摘されました。
F904iのDrawAreaの挙動って、何か特殊な対応が必要なんでしょうか?
なんとかソフトキーラベルが画面表示に被らないようにしたんですが。。。


819 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 02:55:07 ]
>>818
DoJa-5.x用の開発ガイド詳細編を読んでみるといいよ。
DrawAreaで検索かけて掛かったところ全部。

DrawAreaは任意の値で領域サイズを変えられるわけじゃない。
サポートしているサイズが端末ごとに決まっている模様。

ソフトキー描画を非表示にするメソッドが使える場合もあるとも書いてある。
全画面表示を指定した場合のソフトキー表示が気に入らなかったら、
ソフトキーを非表示にしてアプリでソフトキーを描画する方法になるだろうね。

820 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 03:12:20 ]
Frame.setSoftLabelVisible(false)

821 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 09:58:28 ]
さらに突っ込むなら
現時点でFrame#setSoftLabelVisible(false)を使用して全画面表示が
可能なのは、端末資料を見る限りだとFシリーズの903i以降と703i以降だ。

なお、F機はフルスクリーンにしないと端末資料に書かれている
最大画面サイズを使用できない。

822 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 21:19:04 ]
勝手直感ゲームまだー?(・∀・ )っ/凵 ⌒☆チンチンチン


823 名前:818 mailto:sage [2007/07/31(火) 02:20:57 ]
>819-821
ありがとうございます。
ずっと、任意の領域に変えられるものだと思ってました。。。

>可能なのは、端末資料を見る限りだとFシリーズの903i以降と703i以降だ。
Fと、Dの903/703もいけそうでした。

>Frame.setSoftLabelVisible(false)
今自分が作っているアプリの場合だと、
クライアントアプリ内で端末名判断してやることになりそうです。
ソースにベタで。
新しく同様の機種が出るたびにリビルド。。。



824 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 03:42:43 ]
703でも903のアプリは動きそうなんですけどダメですか?


825 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 04:21:26 ]
どちらとも言えない。アプリによって答えは違う。
そのアプリが動くかどうかは作った人に聞け。

826 名前:821 mailto:sage [2007/07/31(火) 10:08:25 ]
>>823
>Fと、Dの903/703もいけそうでした。
D端末の端末資料には全画面表示非対応となっているが
いったい端末資料のどこを見て全画面表示が可能だと判断したんだ?

俺が言っているいる全画面表示(フルスクリーン)というのは
Frame#setSoftLabelVisible(false)によってソフトキーの表示を消し
その領域まで使用できることだぞ。

240x320など、240x240以上の領域がDrawAreaで指定可能であるのと
全画面表示が可能であるのは、別の話。
F以外の903以降の端末(PとN903iを除く)の端末はソフトキーを消さずに
240x320以上の領域が使用できるということだ。




827 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 11:08:39 ]
>>822
トラステッドおんりー

828 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 11:34:52 ]
GestureReaderであれば普通に使えるでしょ?
大して面白い機能でも無いから使わんけど。

829 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 17:38:25 ]
>>821さ、誤解を招くようなおかしい文章を自分が書いといて何で噛み付いてんだい。

>Frame#setSoftLabelVisible(false)を使用して全画面表示が可能なのは、
setSoftLabelVisible()はソフトキーの表示/非表示を切り替えるためのメソッドだ。
でもあんたの説明では全画面表示の切り換えに使うメソッドのように読み取れる。

>>823が書いた「Fと、Dの903/703もいけそうでした。」はもちろん
Dの903/703でもsetSoftLabelVisible()はサポートしてるようでした、の意味だ。

830 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 20:41:46 ]
サポートしてなくても、とりあえずThrowableをcatchしとけばいいんでない?

831 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 22:31:39 ]
質問させてください。
アプリから、端末に保存している曲データ(MFiやSMFではなく、圧縮音声データ)
を再生したいと思っています。

単純に思いつくのは、MovieStore.selectEntry()でiモーションデータ取得する方法
ですが、このクラスはNとSHの端末でしかサポートされていないようです。
(今回はFをターゲットにしているので、この方法は使えません)

曲データはサイズがでかいので、アプリ同梱や通信でとってくる方法も出来れば
使いたくありません。
あくまで、あらかじめ端末に保存されている曲データを再生したいと思っています。

他に良い方法はあるでしょうか?


832 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:35:49 ]
偽装gifして読み込む

833 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:05:33 ]
903以降のFって、偽装GIFのコメントヘッダを勝手にとっちゃうから使えないって聞いたけど…

834 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 21:58:21 ]
偽装jpgという手もあるぞ
F903iXだけどgifdeladでjpg偽装したテキストが
iアプリのテキストリーダーで読めたからいけるはず

www.moeracode.net/software/gifdelad/

835 名前:831 mailto:sage [2007/08/01(水) 23:27:54 ]
>>831-834
情報dクスです。
偽装なんとかについては詳しくないので、一度研究してみます。

836 名前:デフォルトの名無しさん [2007/08/02(木) 11:18:52 ]
DoJaってLinkedList持ってないよな?
リスト構造が必要になった時って皆どうしてるんだ?



837 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 13:03:04 ]
無いなら作れ

838 名前:836 [2007/08/02(木) 15:10:32 ]
Vectorで代用することにしたよ。
使えるらしいし。

839 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 01:18:47 ]
>>838
LinkedListとVectorじゃ、計算量的な特徴は全く違うけどね。

840 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 01:38:22 ]
サスペンドイベントと終了イベント(MIDPで言うところのpauseApp()とdestroyApp())が
取れないことがわかって絶望した。
アプリ終了されたときにセーブか何かするってできんやん……

841 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 03:10:33 ]
サスペンド発生のタイミングは基本的に着信やバッテリー残量不足など
即座にアプリから端末へ制御を渡さなければならない状況。
そのためアプリに余計な処理をさせないようにしてある。

終了イベントをアプリで受け取れるようじゃ端末として問題ありだろう。
電源キーで強制終了しようにも、わざと(またはバグで)無限ループ、
バッテリー抜くまで終了できないアプリが作れちゃう。

で、セーブデータ保存タイミングだけど、アプリ実行中にこまめに保存するしかない。
ゲームなら1ステージクリアごととか、タイトル画面へ戻る度にとか。

842 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 03:23:20 ]
841だが何かズレたこと言ってるな自分
暑さのせいだ、スルーしといてくれ

843 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 04:43:50 ]
もしかしてMIDP準拠のアプリで、destroyAppで無限ループすると操作効かなくなるの?

844 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 09:23:09 ]
Maximum byte code length (32KB) exceeded
というエラーがいきなり出るようになったんですが
なんなんですかこれは?
ネットで調べても見つかりません

845 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 10:37:53 ]
英語の意味のまんま。
直訳してみ?

846 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 10:51:52 ]
バイトコードが32KBを越えた
意味不明



847 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 10:56:00 ]
だからそのままだって。
1メソッド32KBの制約に引っかかったから普通のプログラム組めってこと。


848 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 11:10:41 ]
>>843
実機依存かもしれないが、イベントハンドラから一定時間リターンしなかったら
強制終了、だったような。

849 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 11:54:49 ]
>>844
ネットで何を調べたんだ?

850 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:28:57 ]
>>844
っていうかこのスレくらい検索しようぜw
ソースうpしてくれ。
>>379のときは見れなかったんだ。興味あるw

851 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 15:45:48 ]
ボタンを一ドット単位で配置設定なんてことできないよね?

852 名前:379 mailto:sage [2007/08/04(土) 21:12:12 ]
メソッドのサイズを削るために
メソッド内の変数を外に出したらクラスの容量が一気に増えて
今度はクラスの容量が32KBオーバーになっちゃったみたい。
メソッドのサイズ削るよりクラス削るほうが難しそうです・・
ちょうど話題に上がってたみたいなのでもう1回うpしてみました。
zif.hp.infoseek.co.jp/tmp/tori2.zip

853 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 22:06:16 ]
クラスに32Kの容量制限があるなんて初耳だ

854 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 23:08:03 ]
500シリーズとか700シリーズの話じゃね?
30kだっけか。


855 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 23:15:05 ]
おそらく暗黙的に宣言される static {} のサイズが32Kを超えたと思われ。
単純な配列データは別ファイルにしてリソースとして読み込むようにして、
その他のものは幾つかのクラスに分散すべし。

856 名前:379 mailto:sage [2007/08/05(日) 00:32:23 ]
>>855
レスありがとうございます
リソースとして読み込むってのがよく分からないけど
とりあえず変数は別のクラスに分散させてみます



857 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 03:53:49 ]
>>856
855さんが言ってるのは、配列の初期化だと思われ。
byte[] a = { ....};
ってやつね。

858 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 09:28:20 ]
>>854
jarのサイズでなく、プログラム的に1メソッドのサイズ制限だと思われ。
どっかのpdfに書いてあった気がするが忘れたし暑くて探す気がしないから調べといて。

859 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 12:26:58 ]
>>851
できちゃうんだな、これが。

860 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 15:45:13 ]
クラスのメンバ変数は、バイトコード上ではすべて特別なメソッドに置かれる。
そのメソッドが32kBを超えたからコンパイルエラーになった。

855のリソースにして読むというのは、大きな配列はスクラッチパッドやネットワークとかのクラス外に置いて、実行時に動的に読み込めということだろう。

861 名前:379 mailto:sage [2007/08/05(日) 21:17:15 ]
>>860
普通のメソッドは3000行書いても大丈夫だったのに
クラスのメンバ変数はちょっと書いただけで32KB超えたってことは
メンバ変数にすると容量を大量に消費するってことかな

大きな配列は別クラスに移してあるのでリソースにしなくても大丈夫かな

862 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 22:07:33 ]
int[] a = { 10, 20, 30, 40 };
とかっていうのは
a = new int[4];
a[0] = 10;
a[1] = 20;
a[2] = 30;
a[3] = 40;
って書いたのとほぼ同じだから、相当に容量を食う。

863 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 22:11:59 ]
byte[] a = { 10, 20, 30, 40 };
に至っては
a = new byte[4];
a[0] = (byte)((int)10);
a[1] = (byte)((int)20);
a[2] = (byte)((int)30);
a[3] = (byte)((int)40);
と言う感じでintの即値をbyteにキャストするから、さらに食う。

864 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 23:34:03 ]
>>863
byteの配列ってそんな実装なんだ。
知らなかった。勉強になったよ。
まさか想定の4倍食ってるとは……。

865 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 00:49:26 ]
ヒント : javap -c

866 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 01:39:33 ]
どちらにせよ、データは外出ししておいた方が、管理しやすいし入れ替えやすいし良いよ。
理想的には、プログラムをいじらなくても敵キャラやステージを追加できるくらいにすべき。



867 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 12:16:36 ]
iアプリで音楽再生するプログラムを書いています。
サンプルを参考にして、MIDIから変換したMLDファイルの演奏はできました。
変換はフリーソフトを使いました。
次は効果音を鳴らしたいんですが、効果音はMIDIではないですよね。効果音は
どのように作成すればいいのでしょうか。
プログラムの話とは少し違いますが、iアプリで鳴らせる音について調べても
良く分からなかったので質問しました。

いろんなサイトを見ても、MLD形式のファイルがMIDIだと書いてあるのに、
着ボイスの拡張子もMLDだったりでよく分かりません。あと、YAMAHAのサイトで
変換するツールのようなものを見つけたのですが、NEC端末用と書いてあったので
違うのかもしれません。

お願いします。


868 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 13:17:38 ]
>>867
waveからmldに変換するツール探すといいよ。
多分殆どはシェアウェアで、
フリーのは2秒制限とかの制約がつくものが多いと思う。

mldは機種ごとにフォーマットが異なるので、
対応させる機種分mldファイルを用意しないとならない。
Nだけ対応すれば良いのなら、YAMAHAのでもいいかもね。


869 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 13:22:11 ]
>>859
どーやって?


870 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 14:23:35 ]
>>860
ちと試してみたけど、以下のケースでNGだった。
32KB制限云々に限って言えば、
メンバ変数の初期化はコンストラクタ内で実行されるのと同意なんでない?

class app{
 static byte buf[] = {0,1,2,3,4,・・・}; // ←バイトコードで16KB以上、32KB未満になる配列
 app() {
  byte buf2[] = {0,1,2,3,4,・・・}; // ←バイトコードで16KB以上、32KB未満になる配列
 }
};

>>861
前にも指摘されてるけどさ、
そもそも「3000行の普通のメソッド」なんて有り得ないから。
cだけどこの辺読んでみるといいかも。
ttp://www.pro.or.jp/~fuji/mybooks/cdiag/

まー、その場しのぎで良いならクラス2つに分けて、
変数部分だけごっそり移動すれば解決するんじゃないかね。
0から作り直したほうが早いと思うけど。


871 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 14:31:31 ]
一昔前のiアプリじゃいかにメソッドを作らないかを
試行錯誤したもんだが、随分とヌルくなっちまったな。


いいことだ(・∀・)

872 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 14:34:00 ]
インスタンス変数はコンストラクタで、static変数はstaticイニシャライザで初期化される

873 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 15:04:36 ]
インスタンス変数とコンストラクタが<init>で、スタティック変数とstatic{}内が<clinit>というメソッド名になる。
>>867
MLDは、MIDIのような情報、Wave(ADPCM)のような情報どちらも扱える。
>>863
配列の初期化のときの代入は、iastoreとbastoreの違いだけで、
バイトコード上でのキャストはなかったはず。

874 名前:379 mailto:sage [2007/08/06(月) 16:45:56 ]
>>870
メソッド少なくしたのはどっかのサイトにメソッドは少ないほうが
容量少ないって書いてあったからです。
次作るときはオブジェクトに分けるのを試してみたいです。

配列がバイトコードになったときのサイズどうやって調べたんですか?

875 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 18:41:46 ]
キーリビートってどう実装したらいいんですか?

876 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 18:59:38 ]
>>869
レイアウト管理オブジェクトを無効にして、
自分でコンポーネントの座標を設定する。



877 名前:867 mailto:sage [2007/08/06(月) 19:15:42 ]
>>868
ありがとうございます。
wav2mldというソフトを見つけて体験版を試してみたのですが、長さは
2秒もない音声ですがエミュレータ上では再生できませんでした。
そんなに高くなかったので製品版を購入してもう一度試してみようと思います。
他にも変換ソフトがあるようでしたら教えてもらえると嬉しいです。フリーじゃ
なくてもいいです。自分の端末はSOなのでYAMAHAのものではダメのようです。

>>873
ありがとうございます。
WAV形式のMLD形式(?)があって、どちらも拡張子がMLDということでよいでしょうか。
wav2mldというソフトの製品版を使ってみようと思います。

878 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 21:05:30 ]
>>875
毎フレームgetKeypadState()して、過去数フレームと見比べる。


ところで、Java->C, J2ME->BREW自動変換をうたうツールやベンチャーをたまに見かけるが、
GCをどう解決してるかについて何も言ってないのは詐欺認定でいいよな?

879 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 22:31:40 ]
>>875
俺はボタンが押されたら別スレッドでループを回して
離れたらスレッドを切るようにしてる

880 名前:831 mailto:sage [2007/08/06(月) 23:19:16 ]
>>831で質問した者です。
偽装JPEGファイル経由で音声iモーション(AACファイル)再生できたので、
やり方など残しておきます。

・ImageStore.selectEntry()でImageStore取得
・ImageStore.getInputStream()でInputStream取得
・InputStream.read()で不要なデータ読み捨て
・MediaManager.getImage(java.io.InputStream in)でMediaImage取得
・MediaManager.use()
・AudioPresenter.getAudioTrackPresenter()でAudioTrackPresenter取得
・AudioTrackPresenter.setSound(MediaImage sound)でiモーションセット
・AudioTrackPresenter.play()で再生

再度、>>831-834に感謝。

881 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 08:06:06 ]
>>880
おーすごい、レポ乙でつ(`・ω・´)ゝ

882 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 11:05:55 ]
>>880
俺偽装ファイル扱うの知らないんだが、最後から2番目の
MediaImage sound
てどこから出てくるん? MediaManager.getSoundの間違い?

883 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 11:36:22 ]
AudioTrackPresenterのリファレンス参照しる
> 動画のオーディオトラックは MediaImage オブジェクトであるため、
> setSound(MediaImage) メソッドにて設定する必要があることに
> 注意して下さい。

884 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 12:30:48 ]
>>877
>>376でも言った気がするが、PsmPlayerがあるだろ。無料で使えてwav変換も出来るぞ。

885 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 15:26:18 ]
PsmはN用に変換してもN903iで再生できなかった

886 名前:821 mailto:sage [2007/08/07(火) 15:49:06 ]
NはYAMAHAのサウンドを使っているから他と同じにしてはだめ。

今まで各端末メーカごとのサウンド作成する必要がったが
903から統一されて一つのサウンドでよくなった。
しかし、Nだけ903用のサウンドを使用しても鳴らず
N902i用のサウンドを使う羽目になった。



887 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 17:08:35 ]
IアプリからSOAP経由でWEBサービスを利用する事ってできるんでしょうか?
BREWアプリなら可能なんですが…。

888 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 17:25:00 ]
>>887




889 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 18:46:59 ]



890 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 18:54:40 ]
>>886
ごめん、それもっと詳しく教えてくほしい

891 名前:886 mailto:sage [2007/08/07(火) 20:07:50 ]
すまん、前提が違っていた。
俺がmld変換に使っているツールはpsmではなく
DoCoMoの公式CPに配信されるツールとプラグインなのよ。

ところで、俺はpsmについてはあまり詳しく知らないんだけど
これって505の世代までしか対応していないんじゃないかな?
そうだとすると、903とは世代が相当違うから
鳴る保障はほとんどないのでは?

892 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 20:42:49 ]
MFiToolsか…

893 名前:831 mailto:sage [2007/08/07(火) 22:39:16 ]
>>882
AudioTrackPresenter.setSound(MediaImage sound)の括弧の中は、
単なる引数を書いてるだけなので、AudioTrackPresenter.setSoundに
MediaImageオブジェクトを渡すってことです。
("sound"は単なる引数名)

894 名前:デフォルトの名無しさん [2007/08/08(水) 23:08:34 ]
Javaを勉強するぞおおぉ!

895 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 22:34:11 ]
やっぱりあんまりメモリ気にしなくて良いのは楽だなぁ。
自分で弄れた方が良い場面もあったが、最近は殆ど関係無いから
やっぱJavaって良いわ。

896 名前:デフォルトの名無しさん [2007/08/10(金) 13:39:35 ]
>886

>今まで各端末メーカごとのサウンド作成する必要がったが
>903から統一されて一つのサウンドでよくなった。

これのソースが知りたい…
(ソースと言ってもプログラムじゃなくて情報源のほう)



897 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 00:11:05 ]
たぶんサウンドというのはMIDI音源のことじゃなくて
PCM音源のことを言っているんだと思う
PCM音源だと機種によっては実装していない


898 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 01:03:29 ]
MFiTools(?)の吐くmldが1種類になったってことだろ

899 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 02:08:43 ]
音源がなければMLDに変換してもWAVE再生は不可能ということじゃないの?


900 名前:886 [2007/08/11(土) 02:58:10 ]
898の言っているのが正解。一種類で済むようになったって話。
ただしNは例外。
イロイロ調べてみたけど、一般の資料では、この辺の事書いてあるやつないんだな。
ってなわけで、この件について俺はもう語らん。

901 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 03:08:37 ]
>>896
903が発売されたころ公式CPにはサウンドの互換性一覧
みたいなのが公開されて滝がする。俺は部署違うので、中身
見てないし、知ってても言えないんだけどそれじゃないのかなあ。
# 知ってはいないが経験的にはN以外全部一緒で鳴る

そうでなくとも、SH/D/FについてはFUETREKのPCM音源を
積んだSH-Mobile G1だと報道発表されているので当然全く
同一の仕様で確定。NがMA-7なのは変わらず。Pだけは音源が
不明だけど、実際に鳴るってことは少なくともROHMからFUETREKの
音源に乗り換えたんじゃないのかな。と思ってる。

902 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 11:23:13 ]
ドコモとFueTrekは去年くらいに近業務提携したはずだから、それの影響?
wav2mldのサイトを見ると、903シリーズ以降は、[P F D SA]、[SH SO]、Nの3種類みたいだね。
1種類になったってことは、N以外は全部同じになるのか。
そのうちフォーマット公開されないかな

903 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 04:28:38 ]
サーバーサイドにあるPHPにアクセスして、
ネットワークごしに画像をダウンロードする方法で戸惑っています。

// PHP側
<?php
 $img = imagecraetefromgif("img.gif");
 header("Content-Type: image/gif");
 imagegif($img);
?>

// Java側
void downloadImage(String url) {

904 名前:903 mailto:sage [2007/08/12(日) 04:42:27 ]
サーバーサイドにあるPHPにアクセスして、
ネットワークごしに画像をダウンロードする方法で戸惑っています。

// PHP側
<?php
 $img = imagecraetefromgif("test.gif");
 header("Content-Type: image/gif");
 imagegif($img);
?>

// Java側
void downloadImage(String url) {
 try {
  HttpConnection hc
   = (HttpConnection)Connector.open(path, Connector.READ, true);
  hc.setRequestMethod(HttpConnection.GET);

  hc.connect();
  InputStream in = hc.openInputStream();

  byte[] data = new byte[(int)hc.getLength()];
  in.read(data);
  
  ...
}

このような関数で、引数urlでphpのスクリプトにアクセスして画像をダウンロードしたいと思っているのですが、
これだとhc.getLength()が-1で、明らかに正常にアクセスできていません。
ちなみに、urlでgif画像の直リンクを張った場合は正常に動作します。
PHPの出力方法に問題がありそうな気がするので若干スレ違い気味ですが、原因がわかる方がいましたらお願いします。

905 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 07:00:26 ]
> 原因がわかる方がいましたらお願いします。
ヘッダーにコンテントレングスをセットしていないから。


906 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 07:13:22 ]
Content-Lengthの出力はサーバ側の設定によるもの。
アパッチのコンフィグで設定するなり何なり。

一方、iアプリ側はgetLength()が-1になることも考慮した組み方をしておく。
Content-Lengthを設定しておらず、自分でもいじれないサーバではアプリ側で対処するしかない。
if ((int)hc.getLength() == -1){〜} else{〜} てな記述。
具体的な記述内容はググればいくらでも例が見付かる。



907 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 10:43:49 ]
>>904
>これだとhc.getLength()が-1で、明らかに正常にアクセスできていません。

getLength() が -1 でも正常にアクセスできててデータの中身はちゃんと読める。

908 名前:904 mailto:sage [2007/08/12(日) 12:06:52 ]
>>905
PHP側でContent-Typeを出力する前に
 header("Content-Length : " . filesize("test.gif"));
を追加してみたのですが、connect()の段階で止まってしまうのです。

>>906-907
-1でも正常にアクセスできているのは、初耳でした。
確かにレスポンスコードは200だったのですが・・・、ありがとうございます。
以下のコードで、正常に動作することを確認しました。

// Java側 hc.openInputStream()以下
 ...
 byte[] data;
 if ((int)hc.getLength() != -1) {
  data = new byte[(int)hc.getLength()];
  in.read(data);
 }
 else {
  ByteArrayOutputStream bs = new ByteArrayOutputStream();
  while (true) {
   int temp = in.read();
   if (temp == -1) {
    break;
   }
   bs.write(temp);
  }
  data = bs.toByteArray();
 }
 ...






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<254KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef