Tôi muốn android.media.MediaRecorder. để ghi lại âm thanh không thành tập tin, nhưng vào cùng một biến, ví dụ char [] hoặc byte [] hoặc một số cấu trúc bộ đệm khác. Tôi muốn gửi nó đến máy chủ từ xa qua Wi-Fi, android.media.MediaRecorder có thể cung cấp chức năng này không?Ghi âm thanh không để tập tin trên Android
7
A
Trả lời
14
Những gì bạn có thể làm ở đây là sử dụng lớp ParcelFileDescriptor.
//make a pipe containing a read and a write parcelfd
ParcelFileDescriptor[] fdPair = ParcelFileDescriptor.createPipe();
//get a handle to your read and write fd objects.
ParcelFileDescriptor readFD = fdPair[0];
ParcelFileDescriptor writeFD = fdPair[1];
//next set your mediaRecorder instance to output to the write side of this pipe.
mediaRecorder.setOutputFile(writeFD.getFileDescriptor());
//next create an input stream to read from the read side of the pipe.
FileInputStream reader = new FileInputStream(readFD.getFileDescriptor());
//now to fill up a buffer with data, we just do a simple read
byte[] buffer = new byte[4096];//or w/e buffer size you want
//fill up your buffer with data from the stream
reader.read(buffer);// may want to do this in a separate thread
và bây giờ bạn có một bộ đệm đầy đủ các dữ liệu âm thanh
cách khác, bạn có thể muốn ghi dữ liệu trực tiếp vào một ổ cắm từ máy ghi âm. điều này cũng có thể đạt được với lớp ParcelFileDescriptor.
//create a socket connection to another device
Socket socket = new Socket("123.123.123.123",65535);//or w/e socket address you are using
//wrap the socket with a parcel so you can get at its underlying File descriptor
ParcelFileDescriptor socketWrapper = ParcelFileDescriptor.fromSocket(socket);
//set your mediaRecorder instance to write to this file descriptor
mediaRecorder.setOutputFile(socketWrapper.getFileDescriptor());
tại bất kỳ thời gian ghi âm phương tiện truyền thông của bạn có dữ liệu để viết nó sẽ tự động ghi lại nó qua socket
Các vấn đề liên quan
- 1. Chọn một tập tin âm thanh android
- 2. Đảo ngược tập tin âm thanh trong Android
- 3. Android: Trình nghe để ghi lại âm thanh nếu bất kỳ âm thanh nào xảy ra
- 4. tập tin âm thanh Streaming và bộ nhớ đệm nó
- 5. Ghi âm thanh html5
- 6. Cách tải tuyến đường hoặc tập tin âm thanh của thiết bị âm thanh từ thiết bị trong Android?
- 7. Lưu byte âm thanh [] vào tập tin wav
- 8. PCM byte thực [] Để âm thanh trên Android
- 9. Ghi lại âm thanh và phát âm thanh được điều chế trong Android?
- 10. Chất lượng âm thanh kém khi ghi/phát âm thanh - Android SDK
- 11. Hiển thị sóng âm thanh để ghi âm
- 12. âm thanh xung chuyển mạch trên Android
- 13. lỗi ghi âm thanh và video trong android
- 14. Âm thanh ghi của Windows Media Foundation
- 15. Cách phát một tài nguyên Tập tin Âm thanh WPF
- 16. chơi tập tin âm thanh từ thư mục tài sản
- 17. Ghi lại âm thanh iOS
- 18. Không có âm thanh trong Android-x86
- 19. Mẫu mã để ghi âm từ máy Mac trong Cocoa và lưu vào tập tin?
- 20. Mix âm thanh trong android
- 21. Đa nhiệm trên iOS cho ứng dụng Ghi âm thanh
- 22. Nhận dạng giọng nói trên Android với clip âm thanh đã ghi?
- 23. Ghi âm như WAV trên iphone
- 24. Ghi Âm thanh Đầu ra Trong C#
- 25. Cải thiện âm thanh tổng hợp MIDI trên Android/Tải phông chữ âm thanh
- 26. Android: Ghi âm đầu ra SoundPool
- 27. Âm thanh trên iPhone
- 28. android: Phát hiện mức âm thanh
- 29. Cách tắt tất cả âm thanh trên Android
- 30. Cách phát mảng byte âm thanh (không phải tập tin!) Bằng JavaScript trong trình duyệt
Có thể. MediaRecorder ghi vào một FileDescriptor không nhất thiết phải là một tệp. Lưu ý rằng đây không phải là "streaming"! Bạn sẽ phải ghi vào một tập tin ở phía máy chủ một lần nữa. Điều này có thể giúp: http://www.mattakis.com/blog/kisg/20090708/broadcasting-video-with-android-without-writing-to-the-file-system – Fildor
thực sự bạn có thể tạo một bộ mô tả tập tin mà chỉ cần viết vào một bộ đệm bên trong thay vì một tập tin, cũng đừng quên rằng các ổ cắm có một bộ mô tả tập tin là tốt, mà bạn ghi vào để ghi vào socket. cũng không cần phải viết một máy chủ tập tin bên miễn là một cái gì đó đang lắng nghe trên địa chỉ ổ cắm chính xác để nhận các gói tin và xử lý chúng cho phù hợp. –