Я использую qt5.0. Я создал dll и поместил все свои аудиофайлы внутри dll. теперь я создаю файл из ресурса и игры. он работает нормально.Как воспроизвести аудио и удалить файл в QMediaPlayer?
Но проблема в том, что после воспроизведения файла я не могу удалить этот файл и воссоздать новый файл.
Если я попытаюсь удалить вручную, также получаю ошибку. msgstr "некоторая другая программа, использующая этот файл". как только я остановлю программу, тогда только удастся удалить файл.
Как удалить файл после немедленного палибэка. вот мой код
player = new QMediaPlayer;
connect(player,SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)),this,SLOT(mediaStatusChanged(QMediaPlayer::MediaStatus)));
QFile file2(QDir::tempPath() + "/temp0.mp3");
if (file2.open(QIODevice::ReadWrite))
{
QFile workFile(":/AUDIO/" + fn +".mp3");
if(workFile.open(QIODevice::ReadOnly))
{
file2.write(workFile.readAll());
workFile.close();
}
file2.close();
}
player->setMedia(QMediaContent(QUrl::fromLocalFile(QDir::tempPath() + "/temp0.mp3")));
player->setVolume(100);
player->play();
void Audio::mediaStatusChanged(QMediaPlayer::MediaStatus state)
{
if(state==QMediaPlayer::EndOfMedia)
{
QFile::remove(QDir::tempPath() + "/temp0.mp3");
qDebug()<<"Audio played";
}
}
Я получаю "Audio играл" сообщение, но это не deleteing файл.
, пожалуйста, помогите мне решить эту проблему.
есть ли какой-либо способ прямого потока из DLL без создания временных файлов? – Saravanan
Похоже, что игрок может держать дескриптор файла. Если вы удалите объект игрока, может ли файл быть удален? – TheDarkKnight
ну, я пробовал все, но все-таки я получаю ошибку. поэтому я помещаю аудиофайлы в папку windows/media и использую в приложении. Благодарю. – Saravanan