2012/05/18(金) [n年前の日記]
#1 [android] Android端末からLAN上のPC内にある画像ファイルを順々に閲覧していく方法を調べた
Lenovo IdeaPad A1 から、LAN上のPCにアクセスして、画像ファイルを開きたい。
親父さんが写真を撮ってきた際、IdeaPad A1を使って、夕食後、家族で見れたら楽かもしれないと。親父さんが、わざわざフォトフレームの類に画像を転送して、ACアダプタケーブルをぶらぶらさせながら見せようとしてたので。
親父さんが写真を撮ってきた際、IdeaPad A1を使って、夕食後、家族で見れたら楽かもしれないと。親父さんが、わざわざフォトフレームの類に画像を転送して、ACアダプタケーブルをぶらぶらさせながら見せようとしてたので。
◎ 方法その1、ESファイルエクスプローラを使う。 :
自宅サーバ(SAMBAサーバ)の共有フォルダにもアクセスできるし、Windows7の共有フォルダにも、ユーザ名とパスワードを入力すればアクセスできた。
しかし、画像を1ファイルずつ、手動で選択していかないといけない感じで。できればスライドショーで見たいので、ちと厳しい。
しかし、画像を1ファイルずつ、手動で選択していかないといけない感じで。できればスライドショーで見たいので、ちと厳しい。
◎ 方法その2、Digital Photo Frame Slideshowを使う。 :
_Digital Photo Frame Slideshow - Google Play
自宅サーバの共有フォルダにはすんなりアクセスできた。が、Windows7の共有フォルダにはアクセスできなかった。「Network」のボタンを押すと、PC一覧に名前は出てくるが、クリックしても中身が見れない。オプション設定で、サーバを決め打ち、かつ、PC名ではなくIPアドレスで指定したら、共有フォルダを覗くことができた。しかし、いちいち入力するのは面倒臭い気もする。
自宅サーバの共有フォルダに、閲覧したい画像ファイルをコピーする、という使い方なら、一番簡単に使えそう。
自宅サーバの共有フォルダにはすんなりアクセスできた。が、Windows7の共有フォルダにはアクセスできなかった。「Network」のボタンを押すと、PC一覧に名前は出てくるが、クリックしても中身が見れない。オプション設定で、サーバを決め打ち、かつ、PC名ではなくIPアドレスで指定したら、共有フォルダを覗くことができた。しかし、いちいち入力するのは面倒臭い気もする。
自宅サーバの共有フォルダに、閲覧したい画像ファイルをコピーする、という使い方なら、一番簡単に使えそう。
◎ 方法その3、ComittoN (Comic Viewer)を使う。 :
_ComittoN (Comic Viewer) - Google Play
本来は自炊向けコミックビュアーだけど、LAN上のPCにもアクセスできる。
あくまでコミックビュアーなので、クリックしていかないと次の画像に進めない・自動でスライドショーはできない予感。しかし、画像の拡大縮小アルゴリズム?を選べるのはヨサゲ。
本来は自炊向けコミックビュアーだけど、LAN上のPCにもアクセスできる。
あくまでコミックビュアーなので、クリックしていかないと次の画像に進めない・自動でスライドショーはできない予感。しかし、画像の拡大縮小アルゴリズム?を選べるのはヨサゲ。
◎ 方法その4、Windwos Media Player 12 をDLNAサーバ(?)にする。 :
Windows7上で、Windows Media Player 12(以下、WMP12と表記)を、メディアサーバにする、のかな。たぶん。「メディアストリーミングを有効にする」とかなんとか。
_Windows Media Player 12をメディアサーバーとして利用する - Media Link Player
_Windows Media Player 12 設定方法 | ネットワーク接続関連情報 | システムステレオ | サポート・お問い合わせ | ソニー
どんな設定をしたのか忘れた…。とにかく色々設定を変えた。
Andorid側は、 _Skiftaベータ をインストールしてみた。起動後、「メディアソース選択」「プレイヤー選択」「メディアの参照と再生」の順で選ぶ。メディアソースは、「Windows7機の名前:ユーザ名」を選択。プレイヤーは、「LENOVO A1_07」を選択。これで画像や動画が見れるようになった。
ただ、画像一覧が反映されるまで時間がかかるような気がする。Windows7上でライブラリを更新するまでに時間がかかっているのか、クライアント側のキャッシュがなかなか更新されないのかは不明。
あらかじめ、閲覧したい画像について再生リストを作っておけば、それを選ぶだけで、指定の画像だけが再生できる。そのあたりは便利そう。
_Windows Media Player 12をメディアサーバーとして利用する - Media Link Player
_Windows Media Player 12 設定方法 | ネットワーク接続関連情報 | システムステレオ | サポート・お問い合わせ | ソニー
どんな設定をしたのか忘れた…。とにかく色々設定を変えた。
Andorid側は、 _Skiftaベータ をインストールしてみた。起動後、「メディアソース選択」「プレイヤー選択」「メディアの参照と再生」の順で選ぶ。メディアソースは、「Windows7機の名前:ユーザ名」を選択。プレイヤーは、「LENOVO A1_07」を選択。これで画像や動画が見れるようになった。
ただ、画像一覧が反映されるまで時間がかかるような気がする。Windows7上でライブラリを更新するまでに時間がかかっているのか、クライアント側のキャッシュがなかなか更新されないのかは不明。
あらかじめ、閲覧したい画像について再生リストを作っておけば、それを選ぶだけで、指定の画像だけが再生できる。そのあたりは便利そう。
[ ツッコむ ]
#2 [android] 実機上で動作確認中
BG2枚+スプライト相当80枚を、IdeaPad A1 ―― 600x1024、Android 2.3.4 端末で描画してみたら、15FPS前後しか出なかった。酷過ぎる。
手前のBGを半透明で描いているから遅いのかなと思い、試しに市松模様で半透明モドキにしてみたけれど。それでも17FPS。2FPSしか速くならない。その上、見た目がチラチラして、とても気持ち悪い。市松模様でそれらしく誤魔化す方法は、1ドットがそのまま出る状況じゃないと使えないのだな。
Canvas#scale() で全体の拡大縮小をしていたけれど、試しに setFixedSize() を使う形に変えてみたり。… setFixedSize() を呼ぶと、surfaceChanged() が再度呼ばれてしまうあたりで少しハマった。また、画面全体にピッチリ引き延ばされてしまうので、縦横比がかなりおかしなことになってしまった。
実機上で動かしてみたところ、前述の枚数・描画面積でも45FPSぐらいになった。ここまで速くなるとは…。その代わり、見た目が汚くなった。拡大縮小する際に、特定の補完処理がかかっているようで、画面がボケボケに。また、前述のとおり、縦横比がおかしくなる。横画面にするとさらに酷い。
つまり、IdeaPad A1に限って言えば。
ここまで速くなるのであれば、基準サイズを、320x480から480x800にしても、そこそこ動くのではないか。試してみたが、残念ながら30FPS前後まで遅くなった。画像が大きい=描画面積が増えてしまうと、やっぱり処理時間がグンと増えてしまうのだろう。
手前のBGを半透明で描いているから遅いのかなと思い、試しに市松模様で半透明モドキにしてみたけれど。それでも17FPS。2FPSしか速くならない。その上、見た目がチラチラして、とても気持ち悪い。市松模様でそれらしく誤魔化す方法は、1ドットがそのまま出る状況じゃないと使えないのだな。
Canvas#scale() で全体の拡大縮小をしていたけれど、試しに setFixedSize() を使う形に変えてみたり。… setFixedSize() を呼ぶと、surfaceChanged() が再度呼ばれてしまうあたりで少しハマった。また、画面全体にピッチリ引き延ばされてしまうので、縦横比がかなりおかしなことになってしまった。
実機上で動かしてみたところ、前述の枚数・描画面積でも45FPSぐらいになった。ここまで速くなるとは…。その代わり、見た目が汚くなった。拡大縮小する際に、特定の補完処理がかかっているようで、画面がボケボケに。また、前述のとおり、縦横比がおかしくなる。横画面にするとさらに酷い。
つまり、IdeaPad A1に限って言えば。
- Canvas#scale() を使うと、画面は少し綺麗だが、処理は遅い。
- setFixedSize()を使うと、画面は汚いが、処理は速い。
ここまで速くなるのであれば、基準サイズを、320x480から480x800にしても、そこそこ動くのではないか。試してみたが、残念ながら30FPS前後まで遅くなった。画像が大きい=描画面積が増えてしまうと、やっぱり処理時間がグンと増えてしまうのだろう。
[ ツッコむ ]
#3 [android] 画面の縦横幅が違うことで悩んでいたり
Androidは画面解像度がバラバラ。縦横比も異なる。リアルタイム2Dゲームの類を作るにあたっては、どうやって対応させたものかと悩んでいたり。GUI部品をずらずら並べて作るタイプの、いわゆるユーティリティ系のアプリなら、まだどうにかなるのかもしれないけれど。その手の2Dゲームの類は、きっちりとドット単位で位置を決めて動かさないとゲームとして成立しないわけで。
とりあえず、縦横比を羅列して眺めてみたり。「長辺/短辺」は、短辺を1としたときの長辺の長さ、ということになる。
一番小さい値で、1.333…。一番大きい値で、2。本当にバラバラ。違いがあり過ぎる。
1.333に合わせて基準となる画像やレイアウトを作っておいて、それを、縦横比が2の端末で、画面全体に引き延ばしてしまうと、見た目がとんでもないことになる予感。できれば、ゲーム画面内の縦横比は合わせておきたい。となると、上下もしくは左右に隙間を入れるしかナサゲ。
dipなる単位を使えばいいのかなと思ったけれど、ldpi、mdpi、hdpi それぞれに 1024x600ピクセル等があるということは、論理サイズなるものからして、異なる大きさだらけのはずで。となると、dipとやらで指定しても全然解決しない気がする。さて、どうしたもんか。
とりあえず、縦横比を羅列して眺めてみたり。「長辺/短辺」は、短辺を1としたときの長辺の長さ、ということになる。
長辺 | 短辺 | 長辺/短辺 |
---|---|---|
320 | 240 | 1.3333333333 |
400 | 240 | 1.6666666667 |
432 | 240 | 1.8 |
480 | 320 | 1.5 |
800 | 480 | 1.6666666667 |
854 | 480 | 1.7791666667 |
960 | 480 | 2 |
960 | 540 | 1.7777777778 |
960 | 640 | 1.5 |
976 | 600 | 1.6266666667 |
1024 | 600 | 1.7066666667 |
1024 | 768 | 1.3333333333 |
1280 | 720 | 1.7777777778 |
1280 | 752 | 1.7021276596 |
1280 | 768 | 1.6666666667 |
1280 | 800 | 1.6 |
1366 | 800 | 1.7075 |
一番小さい値で、1.333…。一番大きい値で、2。本当にバラバラ。違いがあり過ぎる。
1.333に合わせて基準となる画像やレイアウトを作っておいて、それを、縦横比が2の端末で、画面全体に引き延ばしてしまうと、見た目がとんでもないことになる予感。できれば、ゲーム画面内の縦横比は合わせておきたい。となると、上下もしくは左右に隙間を入れるしかナサゲ。
dipなる単位を使えばいいのかなと思ったけれど、ldpi、mdpi、hdpi それぞれに 1024x600ピクセル等があるということは、論理サイズなるものからして、異なる大きさだらけのはずで。となると、dipとやらで指定しても全然解決しない気がする。さて、どうしたもんか。
[ ツッコむ ]
以上、1 日分です。