Skip to content

Commit

Permalink
fix: 修复ape格式多次暂停播放无声问题
Browse files Browse the repository at this point in the history
修复ape格式多次暂停播放无声问题

Bug: https://pms.uniontech.com/bug-view-275987.html
Log: 修复ape格式多次暂停播放无声问题
  • Loading branch information
myk1343 committed Sep 27, 2024
1 parent fda70b8 commit 57ea8bc
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 2 deletions.
1 change: 0 additions & 1 deletion src/music-player/core/vlc/sdlplayer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,6 @@ void SdlPlayer::pause()
if (!_vlcMediaPlayer)
return;
setProgressTag(0); //first start

if (m_loadSdlLibrary) {
SDL_GetAudioStatus_function GetAudioStatus = (SDL_GetAudioStatus_function)VlcDynamicInstance::VlcFunctionInstance()->resolveSdlSymbol("SDL_GetAudioStatus");
SDL_PauseAudio_function PauseAudio = (SDL_PauseAudio_function)VlcDynamicInstance::VlcFunctionInstance()->resolveSdlSymbol("SDL_PauseAudio");
Expand Down
21 changes: 20 additions & 1 deletion src/music-player/core/vlcplayer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@

#include <QDBusObjectPath>
#include <QDBusInterface>
#include <QProcess>
#include <QApplication>
#include <QFile>

VlcPlayer::VlcPlayer(QObject *parent)
: PlayerBase(parent)
Expand Down Expand Up @@ -135,7 +138,9 @@ void VlcPlayer::play()
void VlcPlayer::pause()
{
if (m_qvplayer) {
#ifndef __sw_64__
static_cast<SdlPlayer*>(m_qvplayer)->setCachingThreadPause(true);
#endif
m_qvplayer->pause();
}
}
Expand All @@ -151,7 +156,9 @@ void VlcPlayer::resume()
{
if (m_qvplayer) {
m_qvplayer->resume();
#ifndef __sw_64__
static_cast<SdlPlayer*>(m_qvplayer)->setCachingThreadPause(false);
#endif
}
}
PlayerBase::PlayState VlcPlayer::state()
Expand Down Expand Up @@ -203,7 +210,19 @@ void VlcPlayer::setMediaMeta(MediaMeta meta)
{
init();
m_activeMeta = meta;
m_qvmedia->initMedia(meta.localPath, meta.mmType == MIMETYPE_CDA ? false : true, m_qvinstance, meta.track);
if(meta.filetype.toLower() == "ape") {
QString curPath = Global::cacheDir();
QString toPath = QString("%1/images/%2.mp3").arg(curPath).arg(meta.hash);
if(!QFile::exists(toPath)) {
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
QString program = QString("ffmpeg -i %1 -ac 1 -ab 32 -ar 24000 %2").arg(meta.localPath).arg(toPath);
QProcess::execute(program);
QApplication::restoreOverrideCursor();
}
m_qvmedia->initMedia(toPath, meta.mmType == MIMETYPE_CDA ? false : true, m_qvinstance, meta.track);
} else {
m_qvmedia->initMedia(meta.localPath, meta.mmType == MIMETYPE_CDA ? false : true, m_qvinstance, meta.track);
}
m_qvplayer->open(m_qvmedia);
}

Expand Down

0 comments on commit 57ea8bc

Please sign in to comment.