안드로이드 스마트 로봇 개발 정보
(글 수 131)
튜토리얼에 나와있는 음성 합성 액션 부분
public class SampleActivity extends RobotActivity
{
private Action mAction;
private Device mTextDevice;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mAction = Action.obtain(this, Action.Tts.ID);
mTextDevice = mAction.findDeviceById(Action.Tts.COMMAND_TEXT);
mTextDevice.writeString("안녕하세요");
mAction.activate();
}
@Override
public void onDestroy()
{
super.onDestroy();
mAction.deactivate();
mAction.dispose();
}
@Override
public void onInitialized(Robot robot)
{
}
@Override
public void onExecute()
{
}
}
음성이 나오지 않아서 질문드립니다.
이거 외에 뭔가 설정해야 되는게 있나요??




더 필요한 것은 없습니다.
TTS 액션은 폰의 TTS 엔진을 사용하기 때문에
폰에서 TTS를 지원하지 않으면 안됩니다.
사용하시는 폰에 TTS 기능이 있는지 확인하시구요
또는 setOnErrorListener 메소드를 통해 리스너를 등록한 후, 어떤 에러 메시지가 나오는지 살펴보시기 바랍니다.
아... 제가 버전 1.3.1이랑 헛갈릴 수도 있는데요
TTS 엔진이 초기화되는 것보다 액션의 activate를 먼저 하면 엔진이 초기화되어 있지 않아서 Action.Tts.ERROR_LANG_NOT_AVAILABLE 라는 에러 메시지가 발생할 수 있습니다.
혹시 모르니까 버튼 하나를 만들어서 액션의 activate만 버튼 눌렀을 때 호출해 보세요.
이렇게 했을 때 잘 되면 작성하신 코드에는 문제가 없습니다.
다만 액션을 처리하는 쪽에서 엔진 초기화를 기다리지 않아서 그런 건데요
이건 버전 1.3.1에서 수정하였고
버전 1.3.1은 이번 주 내에 배포됩니다.