8

私の Android アプリでは、オーディオ ストリームを読み取り、そのshoutcast メタデータを解析したいと考えています。NPR プロジェクトのように StreamProxy を使用して動作させました: http://code.google.com/p/npr-android-app/source/browse/Npr/src/org/npr/android/news/StreamProxy.java? r=e4984187f45c39a54ea6c88f71197762dbe10e72

問題は、データ接続で機能しないことです。NPR にも同じ問題があります。

要約すると、このプロキシはローカル Web サーバーとして実行され、アプリとリモート ストリーム間のインターフェイスを作成します。生成されたカスタムポートを使用して、localhost 127.0.0.1 で実行されています。サーバーがストリーム データを読み取るとき、 StreamProxyの 223 行で読み取ることができるように、サーバーはそれをアプリにレプリケートします。

client.getOutputStream().write(buff, 0, readBytes);

ただし、その行はデータ接続で次の例外を生成します。

java.net.SocketException: sendto failed: EPIPE (Broken pipe)

私はソケットとストリーミングの専門家ではありません。その場合、wifiとデータ接続の違いが何であるかわかりません。

4

1 に答える 1

-1

以下はいくつかの解決策です!

まず、クライアントが参加しようとしているサーバーと同じバージョンであることを確認してください。同じバージョンを持っていない場合は、ダウンロードMCNostalgiaしてクライアントをダウングレードするために使用できます。

Java の更新

非互換性の問題が発生したくない場合は、最新の Java ランタイム環境 ( jre 7.0_05) をインストールすることをお勧めします。その前に、他の以前のバージョンをアンインストールすることをお勧めします。お使いのオペレーティング システムが で実行されている場合は、 ( ) バージョンのみ32bitをインストールしてください。をお持ちの場合は、 から始めて、この正確な順序で両方をインストールしてください。32bitx8664bit64bit32bit

不要なネットワーク ホストを無効にする

Hamachiそれらの1つになる可能性がありVirtual Boxます。速度が低下したり、接続が妨げられたりする可能性があります。ネットワーク コントロール パネルにアクセスし、[ ] modify network cards(または同様のもの) をクリックします。無効にする必要があるホストを右クリックし、[無効にする] をクリックします。

ファイアウォールを無効にする

コントロール パネルのファイアウォール設定にアクセスして、そこで無効にすることができます。それでもうまくいかない場合は、ルーターのファイアウォールを無効にすることもできます。それらが失敗した場合は、ウイルス対策を無効にしてみてください (ハッカーがコンピューターに簡単に侵入できるため、これらのオプションはお勧めしません)。

これは次の場合にも機能します。

> Internal exception: java.net.SocketException: Software  caused
> connection abort: socket write error
于 2014-01-06T17:48:52.220 に答える