AudioTrack::start方法做了什么?
TrackBase 是什么?
是共享内存,跟play线程使用的。
AudioTrack是怎么创建的?
通过AudioFlinger来创建的
sp<IAudioTrack> track = audioFlinger->createTrack(streamType,
mSampleRate,
mFormat,
mChannelMask,
&temp,
&trackFlags,
mSharedBuffer,
output,
mClientPid,
tid,
&mSessionId,
mClientUid,
&status);
最后在AudioFlinger又是通过PlaybackThread来创建track
track = thread->createTrack_l(client, streamType, sampleRate, format,
channelMask, frameCount, sharedBuffer, lSessionId, flags, tid, clientUid, &lStatus);
那就是说一个Track其实是跟一个播放线程绑定的。
track = new Track(this, client, streamType, sampleRate, format,
channelMask, frameCount, NULL, sharedBuffer,
sessionId, uid, *flags, TrackBase::TYPE_DEFAULT);
在AudioFlinger中Trace的形式是什么?
是TrackHandle
网友评论