浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

Android 导航SDK

百度Andriod 导航SDK为Android移动端应用提供了一套简单易用的导航服务接口,适用于Android 2.1及以上版本。专注于为广大开发者提供最好的导航服务,通过使用百度导航SDK,开发者可以轻松为应用程序实现专业、高效、精准的导航功能。

为了能够让导航正常进行语音播报,还需要对TTS模块进行初始化,百度导航SDK支持两种TTS实现方案,即内置TTS和外置TTS。

内置TTS初始化方法是:

BaiduNaviManagerFactory.getTTSManager().initTTS(context, mSDCardPath, APP_FOLDER_NAME, "tts appid");

外置TTS初始化方法是:

BaiduNaviManagerFactory.getTTSManager().initTTS(mIBNOuterTTSPlayerCallback );

内置TTS

当使用内置TTS接口初始化时,表示将使用内置TTS模块,此时App工程需要集成TTS module,同时设置申请配置过的tts appid。

内置TTS示例代码
        BaiduNaviManagerFactory.getTTSManager().initTTS(context,
getSdcardDir(), APP_FOLDER_NAME, BNNormalUtils.getTTSAppID(), null);

        // 注册同步内置tts状态回调
        BaiduNaviManagerFactory.getTTSManager().setOnTTSStateChangedListener(
                new IBNTTSManager.IOnTTSPlayStateChangedListener() {
                    @Override
                    public void onPlayStart() {
                        Log.e("BNSDKDemo", "ttsCallback.onPlayStart");
                    }

                    @Override
                    public void onPlayEnd(String speechId) {
                        Log.e("BNSDKDemo", "ttsCallback.onPlayEnd");
                    }

                    @Override
                    public void onPlayError(int code, String message) {
                        Log.e("BNSDKDemo", "ttsCallback.onPlayError");
                    }
                }
        );

        // 注册内置tts 异步状态消息
        BaiduNaviManagerFactory.getTTSManager().setOnTTSStateChangedHandler(
                new Handler(Looper.getMainLooper()) {
                    @Override
                    public void handleMessage(Message msg) {
                        Log.e("BNSDKDemo", "ttsHandler.msg.what=" + msg.what);
                    }
                }
        );

内置TTS示例代码

当初始化TTS只传入IBNOuterTTSPlayerCallback时,表示将使用外置TTS能力,即通过回调接口参数将外部的TTS能力注入到百度导航SDK内部,此时无需设置tts appid,同时可以不集成百度导航SDK自带的TTS module。

注意:当使用外置TTS能力时,一定要正确返回getTTSState()接口的返回值,百度导航SDK内部将根据该值判断当前TTS模块状态,是否能够进行播报。