аудио — c ++ sndPlaySound пропустить до 10 секунд

Я ищу часами и надеюсь, ты сможешь мне помочь.

Я программирую музыкальный проигрыватель, который читает файл * .wav через ifstream в буфер, а затем я воспроизводю звук через sndPlaysound (). Это работает, но теперь я хочу приостановить воспроизводимую песню, а затем продолжить позже, и я хочу знать, есть ли у кого-нибудь какие-либо предложения, как я могу перейти, например, к. 10 секунд в файле WAV, так что я не начинаю с самого начала снова.

Вот код вещей, которые я делал до сих пор:

#pragma comment(lib,"winmm.lib")
#include <windows.h>
#include <iostream>
#include <fstream>

Wave::Wave(char * filename)
{
buffer = 0;

std::ifstream infile(filename, std::ios::binary);

/*here is some irrelevant code I omitted*/

infile.seekg(0, std::ios::end);  //move to end
int length = infile.tellg();   //
buffer = new char[length];    //allocate memory
infile.seekg(0, std::ios::beg);   //move to start
infile.read(buffer, length); //save in buffer

totalTime = (length - 44) / bytesPerSec; //total time of *.wav

infile.close();
}

void Wave::play(bool async)
{
if (async)
sndPlaySound((LPCTSTR)buffer,  SND_MEMORY | SND_ASYNC);
else
sndPlaySound((LPCTSTR)buffer,  SND_MEMORY);
}

и я ищу какие-либо идеи, как сделать такой метод

Wave::play(bool async, int x)
{
/*start playing *.wav at x seconds*/
}

Спасибо за каждый ответ или идею

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]