鸿蒙语音播放模块设置为独立线程,保证播放流畅
问题
当app功能业务越来越多,发现之前正常的语音播放模块出现了播放卡顿问题,去掉新增功能后正常
解决
将语音播放的实体功能迁移至独立线程中执行,降低对主线程的资源占用
1. 对外交互模块
import { audio } from '@kit.AudioKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { fileIo as fs } from '@kit.CoreFileKit';
import { Constants } from '../core/constant/Constants';
import { ErrorEvent, MessageEvents, ThreadWorkerGlobalScope, worker } from '@kit.ArkTS';
import { AudioMessage } from '../core/data/AudioMessage';const TAG = 'PcmAudioPlayer-native';export class PcmAudioPlayer {private audioWorker: worker.ThreadWorker | null = null;private playbackQueue: string[] = [];private isPlaying: boolean = false;private currentAudio: string | null = null;pr