3

我正在开发一个基于 SIP 的应用程序来拨打和接听电话。最近我在不同的设备上测试了该应用程序。首先,我用三星 Galaxy 5(2.2) 和三星 Galaxy y(2.3.6) 进行了测试,当调用双方音频时都很好。

但是当我尝试使用 Galaxy y(2.3.6) 和 Sony XPERIA (4.0.3) 时,声音是单方面的。应用程序在 2.2 和 2.3.6 上运行良好,但在测试 2.3.6 和 4.0.3 时是 ICS 的音频问题。

任何人都知道这个问题或遇到过这种问题,那么请给我一些想法。

谢谢

编辑:

我在应用程序中使用编解码器,并且为该编解码器创建了 .so 文件。但我只为armeabi处理器创建了 .so 文件。我认为在 Android 4.0.3 中有一个 armeabi-v7a。那么我是否需要为 armeabi-v7a CPU 创建 .so 文件?

4

2 回答 2

0

正如 sebweisgerber 所说,有几个可能的故障点,如果呼叫正确建立但没有听到音频,则应该是音频捕获/播放、音频解码/编码或音频传输。如果我们考虑到这适用于 2.3.6 而不是 4.0.3,我会打赌音频捕获/播放或编码。

您是否正在与第三方库合作进行编码?因为,如果这个库试图访问系统的编码库,如csipsimple项目,大多数用于解码的库名称已从 Gingerbread 更改为 ICS,因此,这将解释“单向”行为。

希望这可以帮助。

于 2012-08-14T09:22:20.200 回答
0

armeabi也在armeabi-v7a上运行。无论如何,处理器类型取决于设备而不是操作系统。即使在姜饼中,您也可以拥有 armeabi-v7 ......

您需要找到包/音频丢失的确切位置。在 SIP 应用程序中,错误链相当长。即使您没有音频(您需要 root 才能在您的设备上运行 Shark/tcpdump),您是否可以使用 Shark 验证两台设备上是否都接收到 RTP 数据包?否则,尝试强制 RTp 代理并在代理上运行 wireshark。

如果数据包是双向传输的,请检查数据包丢失的位置以及它们到达编码器的位置。将日志和检查放在音频传输管道中的任何位置,直到您知道它们去了哪里并向我们提供更多信息。

于 2012-08-08T07:06:11.413 回答