В моем приложении Blackberry я реализовал камеру и хотел бы заменить звук затвора по умолчанию своим собственным. Я решил, что мог бы сделать это, отключив звук камеры по умолчанию, используя метод enableShutterFeedback (false), затем проиграв свой собственный звук или воспроизведя мой звук непосредственно перед активацией камеры.
private void initializeCamera()
{
try
{
// Create a player for the Blackberry's camera
Player player = Manager.createPlayer( "capture://video" );
// Set the player to the REALIZED state (see Player javadoc)
player.realize();
// Grab the video control and set it to the current display
_videoControl = (VideoControl)player.getControl( "VideoControl" );
if (_videoControl != null)
{
// Create the video field as a GUI primitive (as opposed to a
// direct video, which can only be used on platforms with
// LCDUI support.)
_videoField = (Field) _videoControl.initDisplayMode (VideoControl.USE_GUI_PRIMITIVE, "net.rim.device.api.ui.Field");
_videoControl.setDisplayFullScreen(true);
_videoControl.setVisible(false);
}
cc = (CameraControl)player.getControl("CameraControl");
cc.enableShutterFeedback(false);
// Set the player to the STARTED state (see Player javadoc)
player.start();
}
catch(Exception e)
{
MyApp.errorDialog("ERROR " + e.getClass() + ": " + e.getMessage());
}
}
Это приводит к исключению нулевого указателя, но не может выяснить, что его вызывает, видео с камеры не отображается. Если я удалю код CameraControl жирным шрифтом, тогда будет показано видео с камеры. Есть идеи, что я должен попытаться избавиться от звука затвора? Я пробовал VolumeControl вместо CameraControl, те же результаты, нулевой указатель.