Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 前台服务中的AudioTrack没有获得足够的CPU时间_Java_Android_Android Service_Audiotrack - Fatal编程技术网

Java 前台服务中的AudioTrack没有获得足够的CPU时间

Java 前台服务中的AudioTrack没有获得足够的CPU时间,java,android,android-service,audiotrack,Java,Android,Android Service,Audiotrack,我有一个应用程序正在将处理过的音频字节流式传输到AudioTrack。AudioTrack的缓冲区大小设置为4K,并以2K块的形式提供数据。它在服务中的一个线程中运行,当它的关联活动在前台时,该线程通过bindService()和startService()运行 当活动暂停时,例如按home按钮,服务将调用startForeground(),并显示通知。问题在于,在startForeground()状态下,音频偶尔会出现乱码或失真,但当相关活动处于前台并正在运行时,音频会完全正常。应该注意的是,

我有一个应用程序正在将处理过的音频字节流式传输到AudioTrack。AudioTrack的缓冲区大小设置为4K,并以2K块的形式提供数据。它在服务中的一个线程中运行,当它的关联活动在前台时,该线程通过bindService()和startService()运行

当活动暂停时,例如按home按钮,服务将调用startForeground(),并显示通知。问题在于,在startForeground()状态下,音频偶尔会出现乱码或失真,但当相关活动处于前台并正在运行时,音频会完全正常。应该注意的是,当音频失真时,AudioTrack不会报告任何缓冲区下溢

我可以通过将AudioTrack的缓冲区提高到32K来解决这个问题,但这对我的应用程序来说并不理想

有什么解决办法吗?我试过打电话

Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
在我的Runnable的run()方法中,但它没有帮助