1

我在 Android 上有一个流式音频应用程序,它使用AudioTracktrack.write().

过了一会儿,音频停止了。我找不到问题。之后,我看到 Admob 也收到了异常:

java.net.ConnectException: failed to connect to googleads.g.doubleclick.net:.. connect failed: EHOSTUNREACH (No route to host)

在日志中看到这一行后,我认为设备的 wi-fi 连接存在不稳定因素。(我使用 Galaxy S3 4.1.2)

由于我在桌面上使用相同的连接,我可以说互联网没有问题(我可以在桌面上流式传输相同的音频)。

这不会发生在同一时间段内。它在 10 秒到 10 分钟之间随机发生。

可能是什么原因,我可以通过告诉操作系统不要关闭连接来防止这种情况发生吗?(我已经在前台进程中使用它)

更新: 我尝试了以下锁,但问题仍然存在。

    private static WifiLock wifiLock = ((WifiManager) AppMain.getInstance().getSystemService(Context.WIFI_SERVICE))
        .createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, "plywilock");

我在我的 MyPlayerInSameProcessService 中设置了它,我在服务的 onDestroy() 中释放它。代码使用 jni 获取音频数据 c++ 并在 java 端提供 AudioTrack。

如果我禁用 Wi-Fi,它会在 3G 上完美流畅地工作,不会出现任何中断。

在同一个 Wi-Fi 网络中,如果我在应用程序中使用具有相同 url 的另一个应用程序,则该应用程序可以顺利运行。所以,可能是我,而不是 Wi-Fi 质量。

4

0 回答 0