如何在Android VOIP呼出中实现铃声

12

我们在应用程序(VOIP)中使用 agora.io 进行语音通话。两个人之间的通话非常流畅。但是当我拨号联系人 B 时,在连接电话时我无法听到拨号音。我希望在电话接通时能够听到铃声,而来电者会听到铃声。

请问有人能帮助我如何解决这个问题吗?

我们正在构建 Android 应用程序,使用 Java、Kotlin 和 Agora.io SDK。


Prabhakar,如果下面的答案对您有用,请确认它为正确的回复。 - Hermes
完成。谢谢提醒,@Hermes - Prabhakar
很高兴它对你有用! - Hermes
2个回答

9

目前Agora.io的Android SDK不直接支持呼叫方播放音频。这需要使用Android的Telcom包来实现,更具体地实现ConnectionConnectionServiceToneGenerator类。

每当您开始通话时,您可能希望创建一个新的音调,将下面的<AUDIO STREAM>替换为您想要在其中播放音调的流,并将<VOLUME LEVEL>替换为整数(或枚举)以设置音量级别。

ToneGenerator dtmfGenerator = new ToneGenerator(<AUDIO STREAM>,<VOLUME LEVEL>);
dtmfGenerator.startTone(ToneGenerator.TONE_DTMF_0, 1000); 
dtmfGenerator.stopTone();

例如,如果您想利用上面的示例来使用呼叫音调,则应使用ToneGenerator.TONE_SUP_RINGTONE
ToneGenerator dtmfGenerator = new ToneGenerator(ToneGenerator.TONE_SUP_RINGTONE,ToneGenerator.MAX_VOLUME);
dtmfGenerator.startTone(ToneGenerator.TONE_DTMF_0, 1000); 
dtmfGenerator.stopTone();

-1

如果你正在使用Flutter,flutter_dtmf包可以实现这个功能...

import 'package:flutter_dtmf/dtmf.dart';

...
Dtmf.playTone("1", durationMs: 1000);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接