पर फ़ाइल चलाते समय मैं Audio Capture sample on android.com का उपयोग कर वास्तविक उपकरणों पर ऑडियो रिकॉर्ड और प्ले करने के लिए उपयोग कर रहा हूं। (मोटोरोला टच पैड, और सैमसंग गैलेक्सी एस)।मीडियाप्लेयर त्रुटि -2147483648 आंतरिक स्टोरेज
जब मैं
mFile = Environment.getExternalStorageDirectory().getAbsolutePath();
रिकॉर्ड और प्लेबैक काम करता है के रूप में ऑडियो फ़ाइल पथ परिभाषित करते हैं।
लेकिन अगर मैं
के रूप में ऑडियो फ़ाइल सेटmFile = getFilesDir().getAbsolutePath();
mFile = getDir("media", Context.MODE_PRIVATE).getAbsolutePath();
या
mFile = getDir("media", Context.MODE_WORLD_READABLE).getAbsolutePath();
रिकॉर्ड काम करने के लिए लगता है, लेकिन प्लेबैक
के साथ विफलत्रुटि/MediaPlayer (4559): त्रुटि (1, -2147483648)
क्या समारोह केवल मेरे ऐप भीतर प्लेबैक के लिए ऑडियो फाइलों को बचाने के लिए सही आंतरिक भंडारण निर्देशिका वापस आ जाएगी?
प्रश्न में कोड मेरे onCreate
फ़ंक्शन में है। (उदाहरण के लिए, वे यह निर्माता में है, लेकिन मैं यह onCreate में ले जाया गया क्योंकि अन्यथा getFilesDir() और getDir() काम करने के लिए कोई संदर्भ नहीं है।)
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
// mFile = Environment.getExternalStorageDirectory().getAbsolutePath(); // OK
// mFile = getFilesDir().getAbsolutePath(); // BAD
// mFile = getDir("media", Context.MODE_PRIVATE).getAbsolutePath(); // BAD
mFile = getDir("media", Context.MODE_WORLD_READABLE).getAbsolutePath(); // BAD
mFile += "/audiorecordtest.3gp";
Log.e(LOG_TAG,mFile);
// ...
}
जब मैं बाह्य भंडारण के लिए रिकॉर्ड (और प्लेबैक ठीक से काम करता है), लॉग इस तरह दिखता है:
06-17 10:08:28.380: DEBUG/AudioHardwareTegra(85): getInputBufferSize: returns 320 for rate 8000
06-17 10:08:28.380: INFO/MPEG4Writer(85): limits: 2147483647/0 bytes/us, bit rate: 12200 bps and the estimated moov size 3072 bytes
06-17 10:08:28.440: DEBUG/AudioHardwareTegra(85): setDriver_l: Analog mic? yes. Bluetooth? no.
06-17 10:08:28.970: WARN/AudioFlinger(85): RecordThread: buffer overflow
06-17 10:08:28.970: INFO/MPEG4Writer(85): setStartTimestampUs: 83095
06-17 10:08:28.970: INFO/MPEG4Writer(85): Earliest track starting time: 83095
06-17 10:08:34.020: DEBUG/MPEG4Writer(85): Stopping Audio track
06-17 10:08:34.080: WARN/AudioFlinger(85): RecordThread: buffer overflow
06-17 10:08:34.090: INFO/MPEG4Writer(85): Received total/0-length (257/0) buffers and encoded 257 frames. - audio
06-17 10:08:34.090: INFO/MPEG4Writer(85): Audio track drift time: -385311 us
06-17 10:08:34.090: DEBUG/MPEG4Writer(85): Stopping Audio track source
06-17 10:08:34.090: DEBUG/MPEG4Writer(85): Audio track stopped
06-17 10:08:34.090: DEBUG/MPEG4Writer(85): Stopping writer thread
06-17 10:08:34.090: DEBUG/MPEG4Writer(85): 0 chunks are written in the last batch
06-17 10:08:34.090: DEBUG/MPEG4Writer(85): Writer thread stopped
06-17 10:08:34.090: DEBUG/MPEG4Writer(85): Stopping Audio track
06-17 10:08:34.100: WARN/MediaRecorder(4559): mediarecorder went away with unhandled events
06-17 10:08:40.740: INFO/StagefrightPlayer(85): setDataSource('/data/data/my.record.test/files/audiorecordtest.3gp')
06-17 10:08:40.740: ERROR/MediaPlayer(4559): error (1, -2147483648)
06-17 10:08:40.740: ERROR/AudioRecordTest(4559): prepare() failed
लॉग नज़र एल की रिकॉर्डिंग वर्गों:
06-17 10:07:30.890: DEBUG/AudioHardwareTegra(85): getInputBufferSize: returns 320 for rate 8000
06-17 10:07:30.900: INFO/MPEG4Writer(85): limits: 2147483647/0 bytes/us, bit rate: 12200 bps and the estimated moov size 3072 bytes
06-17 10:07:30.960: DEBUG/AudioHardwareTegra(85): setDriver_l: Analog mic? yes. Bluetooth? no.
06-17 10:07:31.100: WARN/AudioFlinger(85): RecordThread: buffer overflow
06-17 10:07:31.100: INFO/MPEG4Writer(85): setStartTimestampUs: 86380
06-17 10:07:31.100: INFO/MPEG4Writer(85): Earliest track starting time: 86380
06-17 10:07:34.350: DEBUG/MPEG4Writer(85): Stopping Audio track
06-17 10:07:34.450: INFO/MPEG4Writer(85): Received total/0-length (167/0) buffers and encoded 167 frames. - audio
06-17 10:07:34.450: INFO/MPEG4Writer(85): Audio track drift time: -20309 us
06-17 10:07:34.450: DEBUG/MPEG4Writer(85): Stopping Audio track source
06-17 10:07:34.470: DEBUG/MPEG4Writer(85): Audio track stopped
06-17 10:07:34.470: DEBUG/MPEG4Writer(85): Stopping writer thread
06-17 10:07:34.470: DEBUG/MPEG4Writer(85): 0 chunks are written in the last batch
06-17 10:07:34.470: DEBUG/MPEG4Writer(85): Writer thread stopped
06-17 10:07:34.470: DEBUG/MPEG4Writer(85): Stopping Audio track
06-17 10:07:34.470: WARN/MediaRecorder(4472): mediarecorder went away with unhandled events
06-17 10:07:40.310: INFO/StagefrightPlayer(85): setDataSource('/mnt/sdcard/audiorecordtest.3gp')
06-17 10:07:46.590: DEBUG/AudioHardwareTegra(85): AudioStreamOutTegra::flush()
06-17 10:07:46.670: DEBUG/AudioHardwareTegra(85): AudioStreamOutTegra::flush() returns
जब मैं (आंतरिक भंडारण करने के लिए रिकॉर्ड और यह विफल रहता है), लॉग इस तरह दिखता है तर्कसंगत रूप से मेरे लिए, इसलिए मुझे लगता है कि यह रिकॉर्डिंग है, लेकिन मुझे नहीं पता कि इसे चलाने के अलावा फ़ाइल को किसी भी तरह से कैसे जांचें। ;-)
त्रुटि लॉग समान है जब मैं getDir() का उपयोग करता हूं।
.close() सुझाव के लिए धन्यवाद दोस्तों; मैंने अभी इसे अपने जवाब में जोड़ा है। –