BlackBerry Forums Support Community               

Closed Thread
 
LinkBack Thread Tools
Old 10-08-2010, 09:51 AM   #1 (permalink)
New Member
 
Join Date: Oct 2010
Model: 8520
PIN: N/A
Carrier: Digitel
Posts: 4
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default Time limiting voice recording

Please Login to Remove!

Hey all, i'm new to BB development and i'm making a voice recording and playback app. I've managed to record, stop the recording and playback the recording, i'd like to know if there's a way i can put a time limit on the recording and also how to display a timer on the screen. Here's a sample of the Thread i use to do the tasks

Code:
package Clases;

import java.io.*;
import java.lang.*;
import javax.microedition.media.*;
import javax.microedition.media.control.*;

import net.rim.device.api.ui.component.Dialog;

public class AudioRecorderThread extends Thread implements javax.microedition.media.PlayerListener{

	private Player _player;
    private RecordControl _recordControl;
    private ByteArrayOutputStream output;
    private ByteArrayInputStream input;
    
    private byte[] _audioArray = null; 
    public byte[] get_audioArray() {
		return _audioArray;
	}



	AudioRecorderThread()
    {
		output = new ByteArrayOutputStream();
	
    }

	
	public void playerUpdate(Player player, String event, Object eventData) {
		// TODO Auto-generated method stub
		
	}
	
	public void run() 
	{
	
		try 
	    {
	        _player = Manager.createPlayer("capture://audio?encoding=audio/amr");
	        _player.addPlayerListener(this);
	        _player.realize();
	        _recordControl = (RecordControl) _player.getControl( "RecordControl" );
	        _recordControl.setRecordStream(output);
	        _recordControl.startRecord();
	        _player.start();
	        
	        
	        
	    }
	    catch( IOException e ) 
	    {
	        Dialog.alert(e.toString());
	    }
	    catch( MediaException e ) 
	    {
	        Dialog.alert(e.toString());
	    }
	}
	
	 public void stop() 
     {
         if (_player != null) 
         {
              _player.close();
              _player = null;
         }

         if (_recordControl != null) 
         {
                    
             try 
             {
                 _recordControl.commit();
                 _audioArray = output.toByteArray();
             } 
             catch (Exception e) 
             {
                 Dialog.alert(e.toString());
             }
             _recordControl = null;
         } 
     }
	 
	 public void play()
	 {
		
		 try {
			 input = new ByteArrayInputStream(_audioArray);
			 _player = Manager.createPlayer(input, "audio/x-wav");
			 _player.realize();
			 
			 VolumeControl volume = (VolumeControl)_player.getControl("VolumeControl");
			 volume.setLevel(100);
			 
			 _player.prefetch();
			 _player.start();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (MediaException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	 }
	 


}
Offline  
Closed Thread


Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On





Copyright 2004-2014 BlackBerryForums.com.
The names RIM and BlackBerry are registered Trademarks of BlackBerry Inc.