Android Audiotrack UI 在写入时冻结

发布于 2024-12-11 10:35:54 字数 188 浏览 0 评论 0原文

我正在尝试连续播放声音,并在流模式下创建了音轨。它可以工作,但每次侦听器做出反应并将一批新数据写入缓冲区时,UI 都会冻结一小段时间。轨道和侦听器驻留在它们自己的线程中,并且该线程设置为最小优先级。

我做错了什么?

出于我的目的,我可能可以使用循环方法,但我想了解如何在不阻塞 UI 的情况下传输声音。

提前致谢。

I'm trying to play a sound continuously and I've created an audiotrack in stream mode. It works but every time the listener reacts and write a new batch of data to the buffer the UI freezes for a small time. The track along with the listeners reside in their own Thread and the thread is set with min priority.

What am I doing wrong?

For my purposes I could probably use the loop method but I want to understand how to stream sound without blocking the UI.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

有深☉意 2024-12-18 10:35:54

您是否在单独的线程上进行写入?这才是真正重要的。尝试使用 AsyncTask 来执行此操作。如果您想要额外的知识,您可以阅读无痛线程文章一些不错的细节。您应该尽量避免手动创建线程。管理它们可能会很痛苦,而且很可能会搞砸。例如,我希望您使用 android 媒体播放框架为您处理声音的实际播放。

Are you doing the writing out on a separate thread? That's what's really important. Try using an AsyncTask to do this. If you want extra-credit, you can read the Painless Threading article for some nice nitty-gritty details. You should try to avoid manually creating threads. Managing them can be a pain, and there's a likely chance you might screw up. For instance, I hope you're using the android media playback framework to handle the actual playing of the sound for you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文