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{uuRXpwjDy?Umz~{oiAmGdHAT7+mz_WTXJEI&E|NP17jQWYU zITJ6i02Lc@mPUL5DmLWe*4qkHEXXCdN`irb;TweJJ;Wt%|Ac{oJ(kPi*gggZUJI_O zW-g$;^SJZtrULapGS1@QiQ0MyMP!Y6In z0yKRF-|EXEK-X*VD?DBYRF%n}ne`Z`>mPsS3ZU5rb+g0%}$OYA*$9%VfxhYvKlKDJoG&EKSMGpKK~{K~n^*As=WmHsxH! PCHVyq)tkQxBrpO1m+oi0 delta 266 zcmZ3kc2#A9EED68iSp)*suRQQg!tw%-Z&%0z`%K*N#F4*0|VQmiQ7HJD;{?Nh3eTR z@VPKB@K0uUkQQcO;7OY-&nU;l_jIy7qkf_yXW|7G1_s_YoTU+8fQk*dxb?OI6^C=l zt&(71VE6{1d26}k?Vm6(u*Y&a9NPyp(n47py z>~{m2=fdL@7XnnbZt{6Xc{gs}Uk`w~IYjuREn9%5-{V_-Sp?`x4St2k>wv0M_%pK} z19k1>&s+iY1@|@n+SdU<^+)-4U7iKx_h&LN2pDZPVdCfB+`%iwJo%o$fz8(i0~i6^ C4@a*6 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}sN>$k=@VPKB@T9UkNDDJCaL%60&M41#cd|O8UJ?&C zXW|7GpyK_Ur4e5k7}!2?aqDdbDmLblTP4B3z;FdZbER;}+dl!?SIp&bY#&fP6IWF; z7tr2w-1&7=f%f`xAJD$Zz`)eUePX{GP~M!!DJ}$P*~Q7*8Rgw(@cw!L)Xm1hCvDjR zG<^o&>dPVw3@r2b6&|kxs>Us`5e5d9dHf2G*8x=-@n>c| z2AUGdpSc3)3yvTBwXXw!>Syxrx;zWWKb#5FWVP9ZDVbyQ1+GY@$>F@yCQI?X004pr BM!f(4 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 zcmbrm2RzmN`#=6Z$KHFdW2?-RNZB(ZGO{^1Rva9Ai_$PtDYLDGq+vv;jLbBokccQF zNuj~-dLO6z?sMOt@Av!oKmKn$UDxZnuGhX^*X!l=e&4s185K1G4?QAIFOK!3oAp(N z)HZ+yz{1d0SHaZMNXaWWNC{8$CI$O@D|trv2YM^{lJMSv1SNb(h(Zt{9Pf<}$18@A zf#gi#LF{s2!etM!606N_^>cSn4&i!8UZjWt7;&f6%(I@7t=@1 zK0knaB$`)Mo^CE^?0TpL%@YExkG9{!355IzgRBoYRK6W>n+id6ffhmUrGQ?cLl7UJ z?eqx32y~eVY=jU*odrQiya*BnNCIR53IW#v)quxHe%ZDIJfXx6kzz%>e zzyM$ZumD&C>;bL-Pk=9AA0QP_0q6sK1#s{q$QHm}KsX>BPzGoNi~^_x5JV1O2uKFp z0t^7Y0>lLo#1;?%$N^je+ynFhCIJZaj~lQBU5;p3!r0V)BlfPTPxz!HEO76lhT9IyeP3@`yW0zv`%0fzvm z0OtT#0hNFnKr5gd@C48g7zV&HLMSeWfa@UO4hUts5EwQDx{g585vZEH9;JcG0AvBM zbde2!jet!6d4K{y5ugN62B-iw1JLNT1+W#M2G|Br2WSAc12h3U06PI%0BwK{Ko_6~ z&<7X*3;{*}V}J?36tD|m1~3O$04xEH05op+0|EeS0Q528fw^2~5nJHdDZC5tziqsM z=KwhsMTZ6}YCs6cxhZ_~AAB;!o`zx%%O64c!yt#{PUdqcHW1Fp4_Xe&p9VRECW!M0 zau#@0&Il-@*fRr#kfSyz|C~}L7x3tV%26K8i&8W_M6p5Jhd!tb?LXQ_lt=vx?H9_U zzJ~S%tsnIl^g-)E{pNQYRDl0&gZdBppf)Iv+Msic`V#uM08oA$?fY+D{SUd$A3WOk-*uV%A=mjMFWN^h zO8HiQ*th^spvZH;22bI=f%o{$gAMBE=z2mQUjWLZdWk|y zfl2}#0MZauI>?j@=>#eR>DxeMp?z2ir6SYywS&shb%Rnk7665~PNCKmYDcE3h&_ew zB~t<9B$;v}C1lEjoF&sO$PJ(vC<#NRn~`fku@K47G!{lH8Yne*ESjc9Xpt~7rKia0 zkUDaj4!K9BG{}9Rv=He~dpd}csbsnVxeSyZR&EYZ21

Me9T9b)ZbJnjZpXhNz0> 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%0DJ#7S-M=d0*h{_4eS=G&5vBpnG6( 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 N`$oWh+Kb3bMKV0d%p)sf0p$olue$VRL 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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 + + + + + +