بلاك بيري تسجيل الصوت نموذج التعليمات البرمجية

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

سؤال

هل يعرف أحد من مستودع جيد للحصول على نموذج التعليمات البرمجية لبلاك بيري؟ على وجه التحديد، عينات تساعدني في تعلم ميكانيكا تسجيل الصوت، ربما حتى أخذ عيناتها والقيام ببعضها على معالجة إشارات الذبابة عليه؟

أرغب في قراءة الصوت الوارد، عينة حسب العينة إذا لزم الأمر، ثم أعالجها لإنتاج النتيجة المرجوة، في هذه الحالة مرحة.

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

المحلول

RIM API يحتوي على JSR 135 Java Mobile Media API للتعامل مع محتوى الصوت والفيديو.
أنت تصحيح عن الفوضى على قاعدة المعرفة BB. الطريقة الوحيدة هي تصفحها، على أمل أنهم لن يغيرون خريطة الموقع مرة أخرى.
إنه المطورين- الموارد->قاعدة المعرفة->Java API والعينات->الصوت والفيديو

تسجيل الصوت

في الأساس، من السهل تسجيل الصوت:

  • إنشاء لاعب مع ترميز الصوت الصحيح
  • الحصول على RecordControl.
  • ابدأ التسجيل
  • إيقاف التسجيل

الروابط:
RIM 4.6.0 API Ref: حزمة Javax.microedition.media
كيفية تسجيل الصوت على هاتف BlackBerry الذكي
كيفية - تشغيل الصوت في التطبيق
كيفية - دعم تدفق الصوت لتطبيق الوسائط
كيفية - تحديد توجيه مسار الصوت
كيفية - الحصول على وقت تشغيل الوسائط من تطبيق الوسائط
ما هي تنسيقات الصوت المدعومة
ما هو - رموز خطأ تطبيق الوسائط

عينة سجل الصوت

مؤشر الترابط مع لاعب، يتم الإعلان عن RecordControl والموارد:

final class VoiceNotesRecorderThread extends Thread{
   private Player _player;
   private RecordControl _rcontrol;
   private ByteArrayOutputStream _output;
   private byte _data[];

   VoiceNotesRecorderThread() {}

   private int getSize(){
       return (_output != null ? _output.size() : 0);
   }

   private byte[] getVoiceNote(){
      return _data;
   }
}

في Thread.Run () بدأ التسجيل الصوتي:

   public void run() {
      try {
          // Create a Player that captures live audio.
          _player = Manager.createPlayer("capture://audio");
          _player.realize();    
          // Get the RecordControl, set the record stream,
          _rcontrol = (RecordControl)_player.getControl("RecordControl");    
          //Create a ByteArrayOutputStream to capture the audio stream.
          _output = new ByteArrayOutputStream();
          _rcontrol.setRecordStream(_output);
          _rcontrol.startRecord();
          _player.start();    
      } catch (final Exception e) {
         UiApplication.getUiApplication().invokeAndWait(new Runnable() {
            public void run() {
               Dialog.inform(e.toString());
            }
         });
      }
   }

وعلى موضوع. توقف التسجيل:

   public void stop() {
      try {
           //Stop recording, capture data from the OutputStream,
           //close the OutputStream and player.
           _rcontrol.commit();
           _data = _output.toByteArray();
           _output.close();
           _player.close();    
      } catch (Exception e) {
         synchronized (UiApplication.getEventLock()) {
            Dialog.inform(e.toString());
         }
      }
   }

معالجة وأخذ عينات الصوت

في نهاية التسجيل، سيكون لديك دفق إخراج مليء بالبيانات بتنسيق صوتي محدد. لذلك لمعالجة أو تذوق، سيتعين عليك فك تشفير دفق الصوت هذا.

نتحدث عن معالجة الذبابة، سيكون ذلك أكثر تعقيدا. سيتعين عليك قراءة دفق الإخراج أثناء التسجيل دون تسجيل تجزئة. لذلك سيكون هناك العديد من المشاكل لحلها:

  • وصول متزامن إلى تيار الإخراج للمسجل و عينات العينات - مشكلة الخيوط
  • اقرأ الكمية الصحيحة من البيانات الصوتية - قم بعمق في تنسيق الصوت فك التشفير لمعرفة قواعد العلامات

قد تكون أيضا مفيدة:
java.net: تجارب في البث المحتوى في جاوة لي بواسطة Vikram Goyal

نصائح أخرى

على الرغم من عدم وجود صوتي محددة، إلا أن هذا السؤال لديه بعض "بدء" مراجع.

كتابة تطبيقات بلاك بيري

قضيت الأعمار في محاولة لمعرفة ذلك أيضا. بمجرد تثبيت حزم مكونات BlackBerry (متوفرة) من موقعهم)، يمكنك العثور على نموذج التعليمات البرمجية داخل حزمة المكونات.

في حالتي، بمجرد أن أقوم بتثبيت حزم المكونات في كسوف، وجدت رمز العينة المستخرجة في هذا الموقع:

C: Program Files Eclipse Eclipse3.4 Plugins Net.Rim.Eide.componentPack4.5.0_4.5.0.16 المكونات العينات

لسوء الحظ، عندما استوردت كل هذا التعليمات البرمجية التي كان لدي مجموعة من أخطاء الترجمة. لتحمل أنني قمت فقط بحذف 20٪ من الحزم مع أخطاء الترجمة.

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

آخر gotchas:
- انقر فوق "اضغط على المشروع" في الكسوف وحدد تنشيط لبلاك بيري
- اختر بلاك بيري -> بناء تكوينات ... -> تحرير ... وحدد مشروعك الجديد لذلك يبني.
تأكد من أنك تضعك رمز مصدر BlackBerry الخاص بك ضمن مجلد "SRC" في مشروع Eclipse، وإلا فقد تضغط على مشكلات بناء.

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