Java 前台服务中的AudioTrack没有获得足够的CPU时间
我有一个应用程序正在将处理过的音频字节流式传输到AudioTrack。AudioTrack的缓冲区大小设置为4K,并以2K块的形式提供数据。它在服务中的一个线程中运行,当它的关联活动在前台时,该线程通过bindService()和startService()运行 当活动暂停时,例如按home按钮,服务将调用startForeground(),并显示通知。问题在于,在startForeground()状态下,音频偶尔会出现乱码或失真,但当相关活动处于前台并正在运行时,音频会完全正常。应该注意的是,当音频失真时,AudioTrack不会报告任何缓冲区下溢 我可以通过将AudioTrack的缓冲区提高到32K来解决这个问题,但这对我的应用程序来说并不理想 有什么解决办法吗?我试过打电话Java 前台服务中的AudioTrack没有获得足够的CPU时间,java,android,android-service,audiotrack,Java,Android,Android Service,Audiotrack,我有一个应用程序正在将处理过的音频字节流式传输到AudioTrack。AudioTrack的缓冲区大小设置为4K,并以2K块的形式提供数据。它在服务中的一个线程中运行,当它的关联活动在前台时,该线程通过bindService()和startService()运行 当活动暂停时,例如按home按钮,服务将调用startForeground(),并显示通知。问题在于,在startForeground()状态下,音频偶尔会出现乱码或失真,但当相关活动处于前台并正在运行时,音频会完全正常。应该注意的是,
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
在我的Runnable的run()方法中,但它没有帮助