提交 43a35799 编写于 作者: B bbcallen

android: audiotrack: do not call sdl_audiotrack_play too often

上级 c97bc1ed
......@@ -68,19 +68,23 @@ int aout_thread_n(JNIEnv *env, SDL_Aout *aout)
SDL_SetThreadPriority(SDL_THREAD_PRIORITY_HIGH);
if (!opaque->abort_request && !opaque->pause_on)
sdl_audiotrack_play(env, atrack);
while (!opaque->abort_request) {
SDL_LockMutex(opaque->wakeup_mutex);
if (!opaque->abort_request && opaque->pause_on)
if (!opaque->abort_request && opaque->pause_on) {
sdl_audiotrack_pause(env, atrack);
while (!opaque->abort_request && opaque->pause_on) {
SDL_CondWaitTimeout(opaque->wakeup_cond, opaque->wakeup_mutex, 1000);
if (opaque->need_flush) {
opaque->need_flush = 0;
sdl_audiotrack_flush(env, atrack);
while (!opaque->abort_request && opaque->pause_on) {
SDL_CondWaitTimeout(opaque->wakeup_cond, opaque->wakeup_mutex, 1000);
}
if (!opaque->abort_request && !opaque->pause_on)
sdl_audiotrack_play(env, atrack);
}
if (opaque->need_flush) {
opaque->need_flush = 0;
sdl_audiotrack_flush(env, atrack);
}
if (!opaque->abort_request && !opaque->pause_on)
sdl_audiotrack_play(env, atrack);
SDL_UnlockMutex(opaque->wakeup_mutex);
audio_cblk(userdata, buffer, copy_size);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册