アプリで特定のファイルをストリーミングする際に奇妙な問題が発生しています。何度も何度もテストを重ねた結果、lighttpd と Droid の間の何らかの問題のように見えるものに絞り込みました。これはアプリだけでなく、組み込みのプレーヤーにもあります。
Droid ブラウザでhttp://stream29l.grooveshark.com/collinSong.mp3を指定しても機能しません。http://staging.api.grooveshark.com/collinSong.mp3で Apache にホストされている同じファイルは、完全にストリーミングされます。ファイルは同一です。どちらの URL も、1.5 および 1.6 を実行している他の電話、および 2.0.1 を実行しているエミュレーターで機能します。
wifi または 3G で再生する場合、lighttpd URL は失敗します。
私の推測では、ネットワーク レベルで、Droid が許容できない奇妙なことが起こっていると思われますが、デバッグできる範囲は限られています。何か案は?
更新: CentOSを実行しているラップトップにlighttpdをインストールし、同じファイルを提供するように設定しました(申し訳ありませんが、外部からはアクセスできません)。Droidはそれらを正常に提供できます。サーバー固有の構成の問題か、lighttpd のバージョンの違いに違いありません。現在、私のラップトップは 1.4.22 を実行しており、本番サーバーは 1.5.0 を実行しています。私たちの実稼働サーバーには、次の構成セットもあり、ラップトップでの設定に問題がありました (注: モジュールが不足している可能性があります)。
server.max-fds = 7000
server.network-backend = "gthread-aio"
server.stat-cache-engine = "fam"
サーバーには、次の追加モジュールもインストールされています。
"mod_proxy_core",
"mod_proxy_backend_http",
"mod_proxy_backend_fastcgi",
明日、モジュールと構成を 100% 一致させて、問題が再現されるかどうかを確認します。そうでない場合は、ラップトップを 1.5.0 にアップグレードして、それで問題が解決するかどうかを確認します。
それまでの間、上記の構成に関連する問題を知っている人はいますか?
更新 2: ラップトップで 1.5.0 にアップグレードしましたが、ストリーミング collinSong.mp3 は引き続き機能しました。追加: server.network-backend = "gthread-aio" はストリーミングを中断しませんでした。ただし、この行は次のとおりです。server.stat-cache-engine = "fam"
上記の行をコメントアウトすると、ラップトップからのストリーミングが機能し、有効にすると機能しなくなります。私は実際に管理者に構成からその行を削除して軽く再起動するように依頼しました (とにかくその設定は必要ないと彼は言いました) が、問題は解決しません。
次に、ラップトップで stat-cache-engine をコメントアウトしたままにして、「mod_proxy_core」、「mod_proxy_backend_http」、「mod_proxy_backend_fastcgi」の行を追加してみました。これらを有効にした後、ラップトップでのストリーミングが再び壊れ、オフにすると機能します。残念ながら、これらはサーバーで使用しているスレッド モデルに必要なようです。そのため、本番環境でオフにして実験することはできません。これが他の誰かに何らかの手がかりを与えるかどうかはわかりませんが、私が持っているのはそれだけです.
プラットフォームのバグのように見えるので、Motorola の開発者と連絡を取りたいです。他の Android デバイス、PC、iPhone、Blackberry、Nokia の携帯電話では正常に動作しますが、Droid では動作しません。