0 Replies Latest reply: Jun 12, 2010 10:11 AM by 843849 RSS

    Problem with VoIP via J2me

    843849
      Dear all,
      I am actually doing a project of creating mobile application for mobile devices to support Voice over Internet via Bluetooth technology. For this project, J2ME is used to work on the application. I have accomplished to transfer data through phone-Bluetooth-computer-internet-computer-Bluetooth-phone.
      But now I face two problems, first of all, I wonder it is able to choose whether the audio is played out from speaker of from receptor, it looks that it is transparent for our programmer. When I want to only record my speaking voice, I will also record the other people's voice.
      Secondly, it seems much more terrible. In the project, I need to record the speaking voice "continuous", but I found it is unable to do via j2me, So I use the MMAPI(JSR135) to do this, and I commit the record very one second, but after testing, I found that every time I commit the record data, it will have a clear noise, I don’t know why, do you ever face this problem? And some people suggest me to use Symbian instead of j2me, it is not suitable to use j2me to do the VoIP phone. But my situation is that I have used lot of time to do this project, if I turn to Symbian now, I am afraid that I don't have enough time. So I wonder it is any other way to solve these problems. Otherwise, I should turn to Symbian as soon as possible.

      simon
      Capture code
      capturePlayer = Manager.createPlayer("capture://audio?encoding=ulaw&rate=8000&bits=8&channels=1&endian=big&signed=signed");
      capturePlayer.realize();
      rc = (RecordControl) capturePlayer.getControl("RecordControl");
      while(true){
          output = new ByteArrayOutputStream();
          rc.setRecordStream(output);
          rc.startRecord();
          capturePlayer.start();
          try {
               Thread.sleep(1000);
          } catch (InterruptedException ex) {
                ex.printStackTrace();
          }
          //every time it commit, the other side will hear a clear noise!!!!!!!!!!!!!!!!!!!!!!
          rc.commit();
          byte[] recordedSoundArray = output.toByteArray();
          // the bluetooth stream
          GameUtility.dos.write(recordedSoundArray);
          GameUtility.dos.flush();