2012.03.24

【Androidメモ】ESエクスプローラのSambaでの動画再生方法

ちょいと気になったのでで調べてみました。

ESエクスプローラ
Link:ES ファイルエクスプローラー - Google Play の Android アプリ

なぜSambaでストリーム再生ができるの?

ほかのツールでも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リクエストされている。

見えてきた構成

内容としてはこんな感じっぽい。

ESファイルエクスプローラ構成

1. ファイルを見つけてhttpで自分のWebサーバーへ呼び出されるようなパスをつくりIntentする
2. アプリケーションが素直にそれを開く
3. 自分のWebサーバーの引数よりSambaからファイルを取得しアプリケーションへ返す

注目点はWebサーバーを内部で持っているということでしょうか。
大抵の動画再生ソフトはhttpからのストリーミング再生に対応している。
Webサーバーを経由することでストリーム再生ができるようにしている。
Webサーバーへリクエストもらった後はこちらの処理になるので自由に処理できる。

これはなかなかの盲点でしたね。
AndroidにWebサーバーを入れるという概念自体がありませんでした。
この考えはほかのものにも使えそうなので覚えておきましょう。


ということでちょっとAndroidでのWebサーバー作りにも興味がでてきました。

クラウド活用のためのAndroid業務アプリ開発入門 クラウド活用のためのAndroid業務アプリ開発入門
出村 成和

日経BP社 2011-03-31
売り上げランキング : 29688

Amazonで詳しく見る by G-Tools

ニャッキ格闘列伝 > 未分類 >

前の記事:
次の記事:

関連記事

コメントリスト

コメントなし

コメント



*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

こんなタグが使えるみたいよ:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>