【问题标题】:Audio Recording Not Getting setRecordLocation()录音未获取 setRecordLocation()
【发布时间】:2011-10-14 10:57:48
【问题描述】:

我正在尝试将音频保存在 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 黑莓设备一起使用?

【问题讨论】:

  • 我试过这个,它在 8900 模拟器中工作。 { _rControl.setRecordLocation("file:///store/home/user/ringtones/recordTest1.amr"); }

标签: blackberry blackberry-simulator


【解决方案1】:

你应该使用:

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

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

【讨论】:

  • 感谢理查德的回答。根据您的回答,我使用枚举来获取 listRoots()。
猜你喜欢
  • 2017-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 2017-09-07
  • 2017-05-05
相关资源
最近更新 更多