gpt4 book ai didi

android - 如何使用 react-native 通过音频通知用户?

转载 作者:行者123 更新时间:2023-11-29 13:54:27 26 4
gpt4 key购买 nike

我正在开发一个react native app,主要是给司机用的,它有这个功能,可以在骑行时用语音命令通知司机,因为司机在骑行时,他很难阅读测试通知。因此,我是移动应用程序开发的新手,在从 fire base 服务器推送通知时需要一个音频解决方案。

我打算推送纯文本并使用 TTS 库将其转换为音频,我能够做到这一点,但是当应用程序处于非 Activity 状态时它不起作用。

我需要一个可以同时在 ios/android 中运行的解决方案,它可以播放音频文件或在手机锁定时使用 TTS 向用户传达消息,应用程序在后台运行。如果即使应用程序未在后台运行,您也可以执行此操作,那就太好了。

最佳答案

对于 Android,您可以为此目的编写 native 代码。创建广播接收器创建 TTS 服务收到通知后,您可以发送广播。从 BroadcastReceiver 中,您可以将 TTS 服务作为 Intent 启动。

public class TTS extends Service implements TextToSpeech.OnInitListener {

private TextToSpeech _testToSpeach;

@Override
public IBinder onBind(Intent arg0) {
return null;
}

@Override
public void onCreate() {
super.onCreate();
}

@Override
public void onDestroy() {
// TODO Auto-generated method stub
if (_testToSpeach != null) {
_testToSpeach.stop();
_testToSpeach.shutdown();
}
super.onDestroy();
}

@Override
public void onStart(Intent intent, int startId) {
_testToSpeach = new TextToSpeech(this, this);
speakOut();
}

@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
int result = _testToSpeach.setLanguage(Locale.US);
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.e("TTS", "Language not supported");
}
speakOut();
} else {
Log.e("TTS", "Initilization Failed!");
}
}

private void speakOut() {
_testToSpeach.speak("its working", TextToSpeech.QUEUE_FLUSH, null);
}
}

您可以像这样从 BroadcastReceiver 启动 TTS 服务

context.startService(new Intent(context, TTS.class));

关于android - 如何使用 react-native 通过音频通知用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57494457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com