From e70070c0d60bc4710cfe9aa5a7bd42d60b530004 Mon Sep 17 00:00:00 2001 From: Barry <870709864@qq.com> Date: Tue, 14 Jun 2022 15:57:32 +0800 Subject: [PATCH] feat: support audio on win --- QtScrcpy/CMakeLists.txt | 18 +++- QtScrcpy/audio/audiooutput.cpp | 178 +++++++++++++++++++++++++++++++++ QtScrcpy/audio/audiooutput.h | 41 ++++++++ QtScrcpy/res/i18n/en_US.qm | Bin 4693 -> 4903 bytes QtScrcpy/res/i18n/en_US.ts | 12 +++ QtScrcpy/res/i18n/zh_CN.qm | Bin 3670 -> 3842 bytes QtScrcpy/res/i18n/zh_CN.ts | 12 +++ QtScrcpy/sndcpy/sndcpy.apk | Bin 0 -> 95591 bytes QtScrcpy/sndcpy/sndcpy.bat | 53 ++++++++++ QtScrcpy/ui/dialog.cpp | 24 +++++ QtScrcpy/ui/dialog.h | 8 ++ QtScrcpy/ui/dialog.ui | 41 +++++++- 12 files changed, 384 insertions(+), 3 deletions(-) create mode 100644 QtScrcpy/audio/audiooutput.cpp create mode 100644 QtScrcpy/audio/audiooutput.h create mode 100644 QtScrcpy/sndcpy/sndcpy.apk create mode 100644 QtScrcpy/sndcpy/sndcpy.bat diff --git a/QtScrcpy/CMakeLists.txt b/QtScrcpy/CMakeLists.txt index 5ddf143..81b642d 100755 --- a/QtScrcpy/CMakeLists.txt +++ b/QtScrcpy/CMakeLists.txt @@ -79,8 +79,8 @@ set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets Network REQUIRED) -find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets Network REQUIRED) +find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets Network Multimedia REQUIRED) +find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets Network Multimedia REQUIRED) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") find_package(QT NAMES Qt6 Qt5 COMPONENTS X11Extras REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS X11Extras REQUIRED) @@ -108,6 +108,13 @@ set(QC_UIBASE_SOURCES ) source_group(uibase FILES ${QC_UIBASE_SOURCES}) +# audio +set(QC_AUDIO_SOURCES + audio/audiooutput.h + audio/audiooutput.cpp +) +source_group(audio FILES ${QC_AUDIO_SOURCES}) + # ui set(QC_UI_SOURCES ui/toolform.h @@ -199,6 +206,7 @@ set(QC_PROJECT_SOURCES ${QC_MAIN_SOURCES} ${QC_GROUP_CONTROLLER} ${QC_PLANTFORM_SOURCES} + ${QC_AUDIO_SOURCES} ) if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") @@ -242,6 +250,11 @@ set_target_properties(${PROJECT_NAME} PROPERTIES if(CMAKE_SYSTEM_NAME STREQUAL "Windows") get_target_property(QSC_BIN_OUTPUT_PATH ${PROJECT_NAME} RUNTIME_OUTPUT_DIRECTORY) set(QSC_DEPLOY_PATH ${QSC_BIN_OUTPUT_PATH}) + + add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/sndcpy/sndcpy.bat" "${QSC_BIN_OUTPUT_PATH}" + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/sndcpy/sndcpy.apk" "${QSC_BIN_OUTPUT_PATH}" + ) endif() # MacOS @@ -309,5 +322,6 @@ add_subdirectory(QtScrcpyCore) target_link_libraries(${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Network + Qt${QT_VERSION_MAJOR}::Multimedia QtScrcpyCore ) diff --git a/QtScrcpy/audio/audiooutput.cpp b/QtScrcpy/audio/audiooutput.cpp new file mode 100644 index 0000000..db5c88e --- /dev/null +++ b/QtScrcpy/audio/audiooutput.cpp @@ -0,0 +1,178 @@ +#include +#include +#include +#include + +#include "audiooutput.h" + +AudioOutput::AudioOutput(QObject *parent) + : QObject(parent) +{ + connect(&m_sndcpy, &QProcess::readyReadStandardOutput, this, [this]() { + qInfo() << QString("AudioOutput::") << QString(m_sndcpy.readAllStandardOutput()); + }); + connect(&m_sndcpy, &QProcess::readyReadStandardError, this, [this]() { + qInfo() << QString("AudioOutput::") << QString(m_sndcpy.readAllStandardError()); + }); +} + +AudioOutput::~AudioOutput() +{ + if (QProcess::NotRunning != m_sndcpy.state()) { + m_sndcpy.kill(); + } + stop(); +} + +bool AudioOutput::start(const QString& serial, int port) +{ + if (m_running) { + stop(); + } + + QElapsedTimer timeConsumeCount; + timeConsumeCount.start(); + bool ret = runSndcpyProcess(serial, port); + qInfo() << "AudioOutput::run sndcpy cost:" << timeConsumeCount.elapsed() << "milliseconds"; + if (!ret) { + return ret; + } + + startAudioOutput(); + startRecvData(port); + + m_running = true; + return true; +} + +void AudioOutput::stop() +{ + if (!m_running) { + return; + } + m_running = false; + + stopRecvData(); + stopAudioOutput(); +} + +void AudioOutput::installonly(const QString &serial, int port) +{ + runSndcpyProcess(serial, port); +} + +bool AudioOutput::runSndcpyProcess(const QString &serial, int port) +{ + if (QProcess::NotRunning != m_sndcpy.state()) { + m_sndcpy.kill(); + } + + QStringList params; + params << serial; + params << QString("%1").arg(port); + m_sndcpy.start("sndcpy.bat", params); +/* + if (!m_sndcpy.waitForStarted()) { + qWarning() << "AudioOutput::start sndcpy.bat failed"; + return false; + } + if (!m_sndcpy.waitForFinished()) { + qWarning() << "AudioOutput::sndcpy.bat crashed"; + return false; + } +*/ + return true; +} + +void AudioOutput::startAudioOutput() +{ + if (m_audioOutput) { + return; + } + + QAudioFormat format; + format.setSampleRate(48000); + format.setChannelCount(2); + format.setSampleSize(16); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::UnSignedInt); + + QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); + if (!info.isFormatSupported(format)) { + qWarning() << "AudioOutput::audio format not supported, cannot play audio."; + return; + } + + m_audioOutput = new QAudioOutput(format, this); + connect(m_audioOutput, &QAudioOutput::stateChanged, this, [](QAudio::State state) { + qInfo() << "AudioOutput::audio state changed:" << state; + }); + m_audioOutput->setBufferSize(48000*2*15/1000 * 20); + m_outputDevice = m_audioOutput->start(); +} + +void AudioOutput::stopAudioOutput() +{ + if (!m_audioOutput) { + return; + } + + m_audioOutput->stop(); + delete m_audioOutput; + m_audioOutput = nullptr; +} + +void AudioOutput::startRecvData(int port) +{ + if (m_workerThread.isRunning()) { + stopRecvData(); + } + + auto audioSocket = new QTcpSocket(); + audioSocket->moveToThread(&m_workerThread); + connect(&m_workerThread, &QThread::finished, audioSocket, &QObject::deleteLater); + + connect(this, &AudioOutput::connectTo, audioSocket, [audioSocket](int port) { + audioSocket->connectToHost(QHostAddress::LocalHost, port); + if (!audioSocket->waitForConnected(500)) { + qWarning("AudioOutput::audio socket connect failed"); + return; + } + qInfo("AudioOutput::audio socket connect success"); + }); + connect(audioSocket, &QIODevice::readyRead, audioSocket, [this, audioSocket]() { + qint64 recv = audioSocket->bytesAvailable(); + //qDebug() << "AudioOutput::recv data:" << recv; + + if (!m_outputDevice) { + return; + } + if (m_buffer.capacity() < recv) { + m_buffer.reserve(recv); + } + + qint64 count = audioSocket->read(m_buffer.data(), audioSocket->bytesAvailable()); + m_outputDevice->write(m_buffer.data(), count); + }); + connect(audioSocket, &QTcpSocket::stateChanged, audioSocket, [](QAbstractSocket::SocketState state) { + qInfo() << "AudioOutput::audio socket state changed:" << state; + + }); + connect(audioSocket, &QTcpSocket::errorOccurred, audioSocket, [](QAbstractSocket::SocketError error) { + qInfo() << "AudioOutput::audio socket error occurred:" << error; + }); + + m_workerThread.start(); + emit connectTo(port); +} + +void AudioOutput::stopRecvData() +{ + if (!m_workerThread.isRunning()) { + return; + } + + m_workerThread.quit(); + m_workerThread.wait(); +} diff --git a/QtScrcpy/audio/audiooutput.h b/QtScrcpy/audio/audiooutput.h new file mode 100644 index 0000000..702ea6d --- /dev/null +++ b/QtScrcpy/audio/audiooutput.h @@ -0,0 +1,41 @@ +#ifndef AUDIOOUTPUT_H +#define AUDIOOUTPUT_H + +#include +#include +#include +#include + +class QAudioOutput; +class QIODevice; +class AudioOutput : public QObject +{ + Q_OBJECT +public: + explicit AudioOutput(QObject *parent = nullptr); + ~AudioOutput(); + + bool start(const QString& serial, int port); + void stop(); + void installonly(const QString& serial, int port); + +private: + bool runSndcpyProcess(const QString& serial, int port); + void startAudioOutput(); + void stopAudioOutput(); + void startRecvData(int port); + void stopRecvData(); + +signals: + void connectTo(int port); + +private: + QAudioOutput* m_audioOutput = nullptr; + QPointer m_outputDevice; + QThread m_workerThread; + QProcess m_sndcpy; + QVector m_buffer; + bool m_running = false; +}; + +#endif // AUDIOOUTPUT_H diff --git a/QtScrcpy/res/i18n/en_US.qm b/QtScrcpy/res/i18n/en_US.qm index 9a830c4575ffe6183c3ab714c362f55d6f7edfde..f0d529489484bb1c14ec521795315ca2412d46ea 100644 GIT binary patch delta 431 zcmcbrvRrL~EEAK!M0s<@WfQ~gl=$TsZ=8{0VBoyZr0;l@fr0H2lb`-f1_o|!rhLKq z3=I5f6PJ6+3kl^jFz{uuRXpxuVBoB0o51J7z#!nu?jSA9z`(P5GCQLj6aW0l>Wun{ zw>c9purM(28FH3Jd|_bVH00ve+seQoAjl=RN`irb;TweJJ;Wt%|Ac{oJ(kPi*gggZ zUJI_OW-bN>?s?q#byFD__?~hf(7wsQz}&=rV!s;$18*mfQ(OoG1JCEl+ZpBE0(gHt zc*4NIA;KqZ*}}jeFoSRPWf2AjHVuA-$Lkmvcry7jvmP@r@c!e^Tp`84z$49H`#OMu zf#WFuuFJC+7`U%wGB60d*(}4v&uuEhkjaq8P|Q%mkjRk3ki($BP|T3WkiwA6P{2^h z!N9=4z{bG9z?YdzFzy(bau!ekw0<6lpic9hfAgVWi6-ZzN0GIA(yZ`_I delta 266 zcmZ3kc2#A9EED68iSp)*suRQQg!tw%-Z&%0z`%K*N#F4*0|VQmiQ7HJD;{?-FmTqh zP2h83VBnw3?jSA9z`&C>S)NgjiSOxTdq(|4Mb5+vEDQ|1Z#YXMzA!Lw8gg;#ZDnBK z59g9wCBeYJ@C`!q)^f?)KVe{CkL7YWwvT~<=QCGTGZzB`cO-Xy-Bbn!z7*~Q+BX>( zn47py>~~{e;C10~iVI<2;8{2MJfplDH}9_pPZ$_DMEImFTNoJl@A0j^EW*IRropf9 zcpU=+j|zWg)?)?+-ktoJE2J10xUccoz7Aku;5f>^>+&oH2JZe$1_lA6%_dCz+?zXi QrI;t*6F9K>x?lh!0Nf8puK)l5 diff --git a/QtScrcpy/res/i18n/en_US.ts b/QtScrcpy/res/i18n/en_US.ts index a596510..d51a414 100644 --- a/QtScrcpy/res/i18n/en_US.ts +++ b/QtScrcpy/res/i18n/en_US.ts @@ -273,5 +273,17 @@ refresh devices refresh devices + + install sndcpy + install sndcpy + + + start audio + start audio + + + stop audio + stop audio + diff --git a/QtScrcpy/res/i18n/zh_CN.qm b/QtScrcpy/res/i18n/zh_CN.qm index c033b3195008ca5590bc71c2d0396fa18d8bb170..801fd700af7da615adc0444d2227c0aa5eae1c48 100644 GIT binary patch delta 386 zcmca6(;&M-UA)$N*2Cffm6_2|Z7}!-Bbn!ZeQ*L+BX>(nEJR+>~~{e;4<$l85nrZZI)q5=Fk*~?(8_qP|T3WkiwA6P{2^h!N9=4z{bG9z?Yd< zT#}fRqfnfel3Y-^IiD+&Nj9D#^7Qo2GbX}SaTk{)7L_O@mZoIpPd?7GTmnUwtGFb; K04f>D`xgM0aAdUr delta 265 zcmZpYyCyS1mWlDlM0qnNuI&@U?FEGyZ=8{0U|=t0(s#Vdz`!atal5B@#p5mp26k1p z34AUL4BQvl9i)XB7&wzA%QMO|dQP@y)Jx(n=S;l7!oa}Q##tKig@J+XBNw;cRt5&{ z`CM|VBp4VNu0UumZ7zBHCkza%#as@@_AxMUp5&@(=3-#rn97}BHlya}?VAh? zOnuxZ_Pa4KaQ@?QiVI<2;G8k}Jfpl@JnyduPZ${3IQXP3TNoI4Sol_77GYpuna8j2 zcpU=+rxAZ<)?)?+u1NmO6;ccg96$JLUk5NSu+8M(b$J#81IOV^1_mCh%_dCA9Gfq2 PMKVne=bbiLithygf(S;v diff --git a/QtScrcpy/res/i18n/zh_CN.ts b/QtScrcpy/res/i18n/zh_CN.ts index 9eac260..43a45c5 100644 --- a/QtScrcpy/res/i18n/zh_CN.ts +++ b/QtScrcpy/res/i18n/zh_CN.ts @@ -273,5 +273,17 @@ refresh devices 刷新设备列表 + + install sndcpy + 安装sndcpy + + + start audio + 开始音频 + + + stop audio + 停止音频 + diff --git a/QtScrcpy/sndcpy/sndcpy.apk b/QtScrcpy/sndcpy/sndcpy.apk new file mode 100644 index 0000000000000000000000000000000000000000..93e8cc2c26dcf27f064ffa3ad401166fe3350c82 GIT binary patch literal 95591 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 literal 0 HcmV?d00001 diff --git a/QtScrcpy/sndcpy/sndcpy.bat b/QtScrcpy/sndcpy/sndcpy.bat new file mode 100644 index 0000000..f8a41a7 --- /dev/null +++ b/QtScrcpy/sndcpy/sndcpy.bat @@ -0,0 +1,53 @@ +@echo off + +echo Begin Runing... +set SNDCPY_PORT=28200 +set SNDCPY_APK=sndcpy.apk +set ADB=adb.exe + +if not "%1"=="" ( + set serial=-s %1 +) +if not "%2"=="" ( + set SNDCPY_PORT=%2 +) + +echo Waiting for device %1... +%ADB% %serial% wait-for-device || goto :error +echo Find device %1 + +for /f "delims=" %%i in ('%ADB% %serial% shell pm path com.rom1v.sndcpy') do set sndcpy_installed=%%i +if "%sndcpy_installed%"=="" ( + echo Install %SNDCPY_APK%... + %ADB% %serial% uninstall com.rom1v.sndcpy || goto :error + %ADB% %serial% install -t -r -g %SNDCPY_APK% || goto :error + echo Install %SNDCPY_APK% success +) + +echo Request PROJECT_MEDIA permission... +%ADB% %serial% shell appops set com.rom1v.sndcpy PROJECT_MEDIA allow + +echo Forward port %SNDCPY_PORT%... +%ADB% %serial% forward tcp:%SNDCPY_PORT% localabstract:sndcpy || goto :error + +echo Start %SNDCPY_APK%... +%ADB% %serial% shell am start com.rom1v.sndcpy/.MainActivity || goto :error + +:check_start +echo Waiting %SNDCPY_APK% start... +::timeout /T 1 /NOBREAK > nul +%ADB% %serial% shell sleep 0.1 +for /f "delims=" %%i in ("%ADB% shell 'ps | grep com.rom1v.sndcpy'") do set sndcpy_started=%%i +if "%sndcpy_started%"=="" ( + goto :check_start +) +echo %SNDCPY_APK% started... + +echo Ready playing... +::vlc.exe -Idummy --demux rawaud --network-caching=0 --play-and-exit tcp://localhost:%SNDCPY_PORT% +::ffplay.exe -nodisp -autoexit -probesize 32 -sync ext -f s16le -ar 48k -ac 2 tcp://localhost:%SNDCPY_PORT% +goto :EOF + +:error +echo Failed with error #%errorlevel%. +exit /b %errorlevel% diff --git a/QtScrcpy/ui/dialog.cpp b/QtScrcpy/ui/dialog.cpp index 733ffc1..35b1884 100644 --- a/QtScrcpy/ui/dialog.cpp +++ b/QtScrcpy/ui/dialog.cpp @@ -687,3 +687,27 @@ const QString &Dialog::getServerPath() } return serverPath; } + +void Dialog::on_startAudioBtn_clicked() +{ + if (ui->serialBox->count() == 0) { + qWarning() << "No device is connected!"; + return; + } + + m_audioOutput.start(ui->serialBox->currentText(), 28200); +} + +void Dialog::on_stopAudioBtn_clicked() +{ + m_audioOutput.stop(); +} + +void Dialog::on_installSndcpyBtn_clicked() +{ + if (ui->serialBox->count() == 0) { + qWarning() << "No device is connected!"; + return; + } + m_audioOutput.installonly(ui->serialBox->currentText(), 28200); +} diff --git a/QtScrcpy/ui/dialog.h b/QtScrcpy/ui/dialog.h index 5ef5a5f..a42142d 100644 --- a/QtScrcpy/ui/dialog.h +++ b/QtScrcpy/ui/dialog.h @@ -11,6 +11,7 @@ #include "adbprocess.h" #include "../QtScrcpyCore/include/QtScrcpyCore.h" +#include "audio/audiooutput.h" namespace Ui { @@ -57,6 +58,12 @@ private slots: void on_useSingleModeCheck_clicked(); void on_serialBox_currentIndexChanged(const QString &arg1); + void on_startAudioBtn_clicked(); + + void on_stopAudioBtn_clicked(); + + void on_installSndcpyBtn_clicked(); + private: bool checkAdbRun(); void initUI(); @@ -79,6 +86,7 @@ private: QMenu *m_menu; QAction *m_showWindow; QAction *m_quit; + AudioOutput m_audioOutput; }; #endif // DIALOG_H diff --git a/QtScrcpy/ui/dialog.ui b/QtScrcpy/ui/dialog.ui index 95b182e..c8f7683 100644 --- a/QtScrcpy/ui/dialog.ui +++ b/QtScrcpy/ui/dialog.ui @@ -7,7 +7,7 @@ 0 0 1293 - 419 + 454 @@ -941,6 +941,45 @@ + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + install sndcpy + + + + + + + start audio + + + + + + + stop audio + + + + + +