Re: AudioDevice playback time information?
Re: AudioDevice playback time information?
- Subject: Re: AudioDevice playback time information?
- From: Vyacheslav Karamov <email@hidden>
- Date: Fri, 23 May 2008 17:38:12 +0300
Is this code correct?
static Float64 GetSampleRate()
{
UInt32 dataSize = sizeof(AudioStreamBasicDescription);
AudioStreamBasicDescription dataFormat;
BOOL err = AudioDeviceGetProperty(_s_info.device, 0, NO,
kAudioDevicePropertyStreamFormat, &dataSize, &dataFormat);
if (err) return 0;
return dataFormat.mSampleRate;
}
//-----------------------------------------------------------------------
UInt64 SndGetCurrentPosition()
{
if (_s_info.is_playing != YES)
{
return 1;
}
AudioTimeStamp timeStamp;
OSStatus err = AudioDeviceGetCurrentTime( _s_info.device, &timeStamp );
if (err)
return 2;
Float64 sampleRate = GetSampleRate();
if ( sampleRate < FLT_EPSILON )
{
return 0;
}
return timeStamp.mSampleTime * 1000 / sampleRate;
}
Vyacheslav Karamov пишет:
Hi All!
How to obtain correct Audio Device playback time information in
milliseconds?
I have found AudioDeviceGetCurrentTime() function, but I don't
understand how can I use it to retrieve current playback time.
P.S. In Windows its very easy
// Get playback position in milliseconds
DWORD CWinPlayer::GetPlaybackPositionMS()
{
MMTIME mm;
mm.wType = TIME_MS;
::waveOutGetPosition(m_hPlayDevice, &mm, sizeof(mm));
return mm.u.ms;
}
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden