カスタム オブジェクトを .net Web サービスに送信でき、webmethod は問題なく動作しています。そのコードを複数の電話でテストしたところ、結果は成功しましたが、サムスンのモバイルで試してみると、例外が発生し始めました。
大きなサイズのビデオを記録し、それを byte[] に変換しようとしたために発生している問題が MemoryOutOfException であることがわかりましたが、Micromax と Motorola では機能しているが、samsung では機能していない低品質のビデオを記録することが期待されていました (残りのブランドは私がまだわかりません)。
takeVideoIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,
MYVIDEOQUALITY);
だからここに私が持っているべきだと思う解決策のいくつかがあります
:
2. または、ビデオをチャンクでアップロードするようにビデオ アップロード メソッドをコーディングします。ビデオに関する詳細情報を送信する必要があるため、それを処理するカスタム オブジェクトを作成し、実装して使用しました。大きなカスタムオブジェクトをチャンクで送信する方法がわかりません。Camera Intent
KVMSerializable
Marshal
これを見ましたが、追加情報を一緒に送信できることがわかりません。動画ファイルのみの送信のみです。
私が十分に明確でない場合は、提供すべき情報を教えてください。
ビデオをアップロードするために使用しているコードは次のとおりです。
private String SaveMedia(String Email, byte[] Media, String MediaType,
String MediaExt) {
SoapSerializationEnvelope envelope;
SoapObject request = new SoapObject(
HelpMeConstant.WSDL_TARGET_NAMESPACE, "SaveMedia");
// Log.i(TAG, "Email : " + Email + ", Media : " + Media + "MediaType : " + MediaType + ",MediaExt : " + MediaExt);
MediaAvidance mediainfo = new MediaAvidance();
mediainfo.EmailId = Email;
mediainfo.Media = Media;
mediainfo.MediaExt = MediaExt;
mediainfo.MediaType = MediaType;
PropertyInfo pi = new PropertyInfo();
pi.setName("avidanceinfo");
pi.setValue(mediainfo);
pi.setType(mediainfo.getClass());
request.addProperty(pi);
envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
// Log.i("SaveMedia", "Serialising..");
new MarshalBase64().register(envelope);
envelope.dotNet = true;
envelope.headerOut = HelperMethod.addAuthentication();
envelope.implicitTypes = true;
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportSE(
HelpMeConstant.SOAP_ADDRESS);
Object response = null;
try {
// Log.i("SaveMedia", "Calling service..");
httpTransport.call(HelpMeConstant.SOAP_ACTION + "SaveMedia",
envelope);
// Log.i("SaveMedia", "getting response..");
response = envelope.getResponse();
} catch (Exception exception) {
// Log.e("SaveMedia", "I got an error :", exception);
response = exception.toString();
}
return response.toString();
}
ご回答ありがとうございます。