2012.03.24
【Androidメモ】ESエクスプローラのSambaでの動画再生方法
ちょいと気になったのでで調べてみました。
ESエクスプローラ
Link:ES ファイルエクスプローラー - Google Play の Android アプリ
ほかのツールでもSambaを使ってファイルなどを見ることができるようにしているわけだけど
動画の再生は対応していない。
このツールだけがなぜか快適に動画再生ができるわけです。
この辺がプログラマとして気になったので調べて見ます。
とりあえずmp4などの動画をクリックしたときにアプリケーション選択画面が出るので
Intent関係の処理を使っているのは間違いなさそう。
自分のアプリもIntentで呼び出して表示できるようにして確認しましょう。
いろいろ試しているとこんな感じでよびだされるらしい。
<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT"></category> <data android:scheme="http" android:mimeType="video/mp4"/> </intent-filter>
いわゆるhttpプロトコルのものを列挙しているらしい。
んで、データは何を渡しているのかと調べてみるとこんな感じらしい。
http://127.0.0.1:59767/smb%2F(以下パス)
ここへブラウザで表示したらなんとちゃんとしたHTTPリクエストされている。
内容としてはこんな感じっぽい。
1. ファイルを見つけてhttpで自分のWebサーバーへ呼び出されるようなパスをつくりIntentする 2. アプリケーションが素直にそれを開く 3. 自分のWebサーバーの引数よりSambaからファイルを取得しアプリケーションへ返す
注目点はWebサーバーを内部で持っているということでしょうか。
大抵の動画再生ソフトはhttpからのストリーミング再生に対応している。
Webサーバーを経由することでストリーム再生ができるようにしている。
Webサーバーへリクエストもらった後はこちらの処理になるので自由に処理できる。
これはなかなかの盲点でしたね。
AndroidにWebサーバーを入れるという概念自体がありませんでした。
この考えはほかのものにも使えそうなので覚えておきましょう。
ということでちょっとAndroidでのWebサーバー作りにも興味がでてきました。
クラウド活用のためのAndroid業務アプリ開発入門 出村 成和 日経BP社 2011-03-31 |
関連記事