مشكلات مع MediArecorder Class Setting Source Source - Setaudiosource () - معلمة غير مدعومة

StackOverflow https://stackoverflow.com/questions/3002537

  •  25-09-2019
  •  | 
  •  

سؤال

أنا جديد في تطوير Android ولدي السؤال/المشكلة التالية.

ألعب مع فئة MediArecorder لتسجيل الصوت فقط من الميكروفون. أنا أتابع الخطوات الموضحة في الموقع الرسمي: http://developer.android.com/reference/android/media/mediarecorder.html

لذلك لدي طريقة تهيئة وتكوين كائن MediArecorder من أجل البدء في التسجيل. هنا لديك الرمز:


        this.mr = new MediaRecorder();
        this.mr.setAudioSource(MediaRecorder.AudioSource.MIC);
        this.mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        this.mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        this.mr.setOutputFile(this.path + this.fileName);
        try {
            this.mr.prepare();
        } catch (IllegalStateException e) {
            Log.d("Syso", e.toString());
            e.printStackTrace();
        } catch (IOException e) {
            Log.d("Syso", e.toString());
            e.printStackTrace();
        }

عندما أقوم بتنفيذ هذا الرمز في المحاكاة ، بفضل Logcat ، يمكنني أن أرى أن الطريقة setaudiosource (mediArecorder.audiosource.mic) تعطي الخطأ التالي (مع علامة Audio_ipunt) عندما يسمى:


ERROR/audio_input(34): unsupported parameter: x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value
ERROR/audio_input(34): VerifyAndSetParameter failed

ثم عندما يتم استدعاء الطريقة إعداد () ، أحصل على خطأ آخر مرة أخرى:


ERROR/PVOMXEncNode(34): PVMFOMXEncNode-Audio_AMRNB::DoPrepare(): Got Component OMX.PV.amrencnb handle 

إذا بدأت في تسجيل بدء تشغيل الطريقة () ... أحصل على الكثير من الرسائل تقول:


AudioFlinger(34):RecordThread: buffer overflow

ثم ... بعد التوقف والإصدار ، .... أستطيع أن أرى أنه تم إنشاء ملف ، لكن لا يبدو أنه كان مسجلًا جيدًا. anway ، إذا جربت هذا في جهاز حقيقي ، يمكنني التسجيل بدون أي مشاكل ، لكن لا يمكنني لعب ما سجلته للتو.

أنا غوز أن المفتاح هو في هذه الأخطاء التي ذكرتها من قبل. كيف يمكنني إصلاحها؟ أي اقتراح أو مساعدة ؟؟

هل كانت مفيدة؟

المحلول

يحتوي المحاكاة على الكثير من المشكلات في تسجيل الصوت. دعنا نقول أنه لا يعمل. أفضل رهان لك هو تجربة الكود الخاص بك في جهاز حقيقي !!!

نصائح أخرى

ملاحظة: لا يتمتع محاكي Android بالقدرة على التقاط الصوت ، ولكن من المحتمل أن توفر الأجهزة الفعلية هذه القدرات.

المرجع: http://developer.android.com/guide/topics/media/audio-capture.html

حسنًا ، أنا جديد إلى حد ما في برمجة Android هذه ، لكنني سأعطيك يا رفاق ما تعلمته حتى الآن. تشير عدد قليل من الإجابات الموجودة هنا إلى أنهم يواجهون مشكلات على الأجهزة الحقيقية ، ومعظمهم من المجرة ، والجهاز الافتراضي/الجهاز الظاهري لا يعمل أيضًا. حسنًا ، قرأت من Google أن الجهاز الظاهري لا يدعم التسجيل الصوتي في الوقت الحالي. قد لا يزال أو لا يكون دقيقًا. ومع ذلك ، أخبرني مبرمج Android الأكثر خبرة أنه لا يوجد سبب للاعتقاد بأن هناك أوجه تشابه بين الأجهزة فيما يتعلق بالأجهزة ، نظرًا لأن Android متاح على العديد من الأجهزة في الوقت الحاضر. وأيضًا ، يتم تعديل كل نظام تشغيل Android قليلاً جدًا لتلبية احتياجات كل جهاز على وجه التحديد ، لذلك على الرغم من أن الروبوت والروبوت X قد يعملان على أندرويد ، فإن إصدارات Froyo مختلفة قليلاً. كل ما يقال ، ربما يكون لدى Galaxy S طريقة استدعاء مختلفة قليلاً للميكروفون أو شيء من هذا القبيل. يحدث جهاز الاختبار الخاص بي ليكون موتودرويد ، لذلك لا يمكنني التأكد من ذلك ، آسف. لكن آمل أن يساعد هذا قليلاً!

تحرير: سيئتي ، المحاكي يدعم تسجيل الصوت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top