diff --git a/audio/audio_driver.c b/audio/audio_driver.c index 023fb95090..30cbdb32c6 100644 --- a/audio/audio_driver.c +++ b/audio/audio_driver.c @@ -952,6 +952,13 @@ static void audio_driver_mixer_remove_stream(unsigned i) switch (audio_mixer_streams[i].state) { case AUDIO_STREAM_STATE_PLAYING: + audio_mixer_stop(voice); +#if 0 + /* TODO - crashes at this part */ + if (handle) + audio_mixer_destroy(handle); +#endif + break; case AUDIO_STREAM_STATE_PLAYING_LOOPED: audio_mixer_stop(voice); #if 0 diff --git a/tasks/task_audio_mixer.c b/tasks/task_audio_mixer.c index 32ee5b86fa..dae1d2f7a5 100644 --- a/tasks/task_audio_mixer.c +++ b/tasks/task_audio_mixer.c @@ -88,7 +88,7 @@ static void task_audio_mixer_handle_upload_ogg(void *task_data, params.volume = 1.0f; params.type = AUDIO_MIXER_TYPE_OGG; - params.state = AUDIO_STREAM_STATE_PLAYING_LOOPED; + params.state = AUDIO_STREAM_STATE_PLAYING; params.buf = img->buf; params.bufsize = img->bufsize; params.cb = NULL; @@ -110,7 +110,7 @@ static void task_audio_mixer_handle_upload_wav(void *task_data, params.volume = 1.0f; params.type = AUDIO_MIXER_TYPE_WAV; - params.state = AUDIO_STREAM_STATE_PLAYING_LOOPED; + params.state = AUDIO_STREAM_STATE_PLAYING; params.buf = img->buf; params.bufsize = img->bufsize; params.cb = NULL;