Androidアプリケーションからにビデオファイルとオーディオファイルを送信しています。これらのファイルの一部は非常に大きくなる可能性があり、ファイルのサイズがほぼWampserver
大きくなると問題が発生する傾向があります。OutofMemory
1MB
各ファイルを個別にバイトストリームに変換します。バイトストリームが大きすぎるため、OutofMemory
。
このエラーの発生を防ぐにはどうすればよいですか?
Androidアプリケーションからにビデオファイルとオーディオファイルを送信しています。これらのファイルの一部は非常に大きくなる可能性があり、ファイルのサイズがほぼWampserver
大きくなると問題が発生する傾向があります。OutofMemory
1MB
各ファイルを個別にバイトストリームに変換します。バイトストリームが大きすぎるため、OutofMemory
。
このエラーの発生を防ぐにはどうすればよいですか?
この例を見てください:
ここで提案されているMaxiumのリンクを使用:
Android で POST を使用して HTTP サーバーにファイルをアップロードします。
次に、エラーを修正するために、Androidでこのメモリ不足エラーを見つけました。
交換:
while (bytesRead > 0)
{
outputStream.write(buffer, 0, bufferSize);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
}
と:
while (bytesRead > 0){
bufferSize = Math.min(bytesAvailable, maxBufferSize);
byte byt[]=new byte[bufferSize];
fileInputStream.read(byt);
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
outputStream.write(buffer, 0, bufferSize);
}
サーバーに送信する大きなファイルや大きな画像/高品質の画像などの大きなサイズのデータがある場合は、部分/チャンクで送信できます。
最初にサーバーとの Http 接続を作成し、次にDataOutputStream
クラスでチャンクを送信します。サーバー側でも同様に、これらのチャンクを受信するためのコードを実装し、すべてのチャンクを取得したら 1 つのファイルにする必要があります。