Ich arbeite an einem Modul, das Stimme aufnehmen und dann mit MultiPartEntity auf den PHP-Server hochladen wird.Wie man Audiodatei mit MediaRecorder aufnimmt und auf sdcard in android speichert
ich kann Stimme und auch seine speichernde Akte in sdcard aber jedes Mal aufnehmen, wenn ich versuche, diese Datei zum PHP-Server (unter Verwendung MPE) zu uplaod, seinen nicht heraufladen und Server, der leeren Akteninhalt erhält.
während ich in meinem Gerät bin, kann ich diese Stimme spielen und gut im Gerät arbeiten. Probleme beim Hochladen. Ich verwende denselben Code, um andere Medien wie Bilder, Videos und andere Dateien hochzuladen. Alles funktioniert gut. nur mit aufgenommener Datei ausgeben.
Dies ist mein Code zum Aufnehmen von Sprache.
MediaRecorder recorder = new MediaRecorder();
recorder.reset();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
String filePath = Environment.getExternalStorageDirectory() + "/" + Environment.DIRECTORY_DCIM + "/abc.mp4";
recorder.setOutputFile(filePath); // This is my file path to store data
recorder.prepare();
recorder.start();
und ich verwende Multipart, um diese Sprachaufnahme auf Server hochzuladen.
Dies ist mein MultiPartEntity-Code.
public class MultipartUtility {
private static final String LINE_FEED = "\r\n";
private static final int TIMEOUT = 60000;
private final String boundary;
private HttpURLConnection httpConn;
private OutputStream outputStream;
private PrintWriter writer;
public MultipartUtility(String requestURL) throws IOException {
boundary = "======" + System.currentTimeMillis() + "======";
URL url = new URL(requestURL);
httpConn = (HttpURLConnection) url.openConnection();
httpConn.setUseCaches(false);
httpConn.setDoOutput(true); // Indicates POST Method
httpConn.setDoInput(true);
httpConn.setReadTimeout(TIMEOUT);
httpConn.setConnectTimeout(TIMEOUT);
httpConn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
httpConn.setRequestProperty("Connection", "Keep-Alive");
// ================
outputStream = httpConn.getOutputStream();
writer = new PrintWriter(new OutputStreamWriter(outputStream, "UTF-8"), true);
}
public void addFormField(String name, String value) {
writer.append("--").append(boundary).append(LINE_FEED);
writer.append("Content-Disposition: form-data; name=\"").append(name).append("\"").append(LINE_FEED);
//writer.append("Content-Type: text/plain; charset=UTF-8").append(LINE_FEED);
writer.append(LINE_FEED).append(value).append(LINE_FEED);
writer.flush();
}
public void addFilePart(String fieldName, File uploadFile) throws IOException {
String fileName = uploadFile.getName();
writer.append("--").append(boundary).append(LINE_FEED);
writer.append("Content-Disposition: form-data; name=\"").append(fieldName).append("\"; filename=\"").append(fileName).append("\"").append(LINE_FEED);
writer.append("Content-Type: ").append(URLConnection.guessContentTypeFromName(fileName)).append(LINE_FEED);
writer.append("Content-Transfer-Encoding: binary").append(LINE_FEED);
writer.append(LINE_FEED);
writer.flush();
FileInputStream inputStream = new FileInputStream(uploadFile);
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.flush();
inputStream.close();
writer.append(LINE_FEED).flush();
}
public String execute() throws IOException {
String response = "";
writer.append(LINE_FEED).flush();
writer.append("--").append(boundary).append("--").append(LINE_FEED);
writer.close();
int status = httpConn.getResponseCode();
if (status == HttpURLConnection.HTTP_OK) {
BufferedReader reader = new BufferedReader(new InputStreamReader(httpConn.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
response += line;
}
reader.close();
} else {
return null;
}
httpConn.disconnect();
return response;
}
Ich habe viel über das gleiche Thema im Web gesucht, aber nicht die exect Lösung für dieses Problem.
Bitte helfen Sie mir, Freunde. Danke im Voraus
do u haben Lösung auf diese verursachen ?? ich das gleiche Problem auch mit, in Server die Audiodatei ist gebrochen – ken