录音未获取setRecordLocation()

时间:2011-10-14 10:57:48

标签: blackberry blackberry-simulator

我正在尝试在Button Click上调用指定设备位置的音频(调用run()方法)。这是我的代码。

public Audio() {

}
public void run()
{
    try{            

        try{
            _player = Manager.createPlayer("capture://audio?encoding=audio/amr");

        }
        catch(MediaException e)
        {
            Dialog.alert(e.toString());
        }           
        _player.realize();
        _rControl =(RecordControl)_player.getControl("RecordControl");

        try{
            **//Point 1//**_rControl.setRecordLocation("file:///Device Memory/samples/ringtones/recordTest1.amr");

        }
        catch(MediaException e){e.printStackTrace();}
        catch(IOException e){e.printStackTrace();}

        _rControl.startRecord();
        _player.start();
        System.out.println("<<--Successful-->>>");
    }
    catch(Exception e){e.printStackTrace();}
}
public void stop()
{
    try{
        if(_rControl != null)
        {
            _rControl.stopRecord();
            try{
                _rControl.commit();
            }catch(Exception e){e.printStackTrace();}
            _rControl = null;
        }

        if(_player != null)
        {
            _player.close();
            _player=null;
        }
    }catch(Exception e){e.printStackTrace();}
}

在run()方法中,我在第1点获取IOException,我试图设置音频文件的位置。但是当我尝试这个时:

   {
        _rControl.setRecordLocation("file:///system/samples/ringtones/recordTest1.amr");
   }

我发现它可以使用9550模拟器但不能使用8900模拟器。那么我应该设置什么位置才能使用8900模拟器和8900黑莓设备?

1 个答案:

答案 0 :(得分:1)

您应该使用:

javax.microedition.io.file.FileSystemRegistry.listRoots()

在运行代码的设备上获取可用的根文件系统。