问题
Android MediaRecorder allows to save video to file (file or socket):
setOutputFile(FileDescriptor fd);
setOutputFile(String path)
How to save videodata to OutputStream? It will be used for streaming video recording.
回答1:
You can do it using ParcelFileDescriptor.fromSocket():
String hostname = "example.com";
int port = 1234;
Socket socket = new Socket(InetAddress.getByName(hostname), port);
ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket);
MediaRecorder recorder = new MediaRecorder();
recorder.setOutputFile(pfd.getFileDescriptor());
recorder.prepare();
recorder.start();
If you prefer UDP, use ParcelFileDescriptor.fromDatagramSocket() instead.
Credit where credit is due.
回答2:
Using Android-specific LocalServerSocket seems to be the only possible way to get video data as stream. In brief, you have to:
- create LocalServerSocket instance
- set it as output file to MediaRecorder instance using file descriptor (mediaRecorder.setOutputFile(FileDescriptor fd);)
- accept connection
- read bytes from it (as from InputStream) in separate thread in loop
Another ideas?
来源:https://stackoverflow.com/questions/14598299/how-to-record-video-on-android-into-stream