如何让应用程序在Android后台播放音频时保持WIFI活着?

时间:2013-07-10 12:04:42

标签: android sockets java-native-interface audiotrack

我在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()服务。 Code使用jni获取音频数据c ++,并在java端提供AudioTrack。

如果我禁用Wi-Fi,它可以完美顺畅地工作而不会中断3G。

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

0 个答案:

没有答案