問題タブ [qmediaplayer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - QMediaPlayer のオーディオ出力ストリームを変更する
オーディオ プレーヤーを Qt4 から Qt5 に、Phonon から QtMultimedia に移植しようとしています。QMediaPlayer の出力とシステム サウンドの間のオーディオ ストリームを変更する方法が見つからないことを除いて、QMediaPlayer ではすべて正常に動作します。後処理効果をオーディオに適用したいと思います。
これを行う方法はありますか?多分 QMediaPlayer をサブクラス化することによって?QAudioOutput クラスと QAudioDecoder クラスを確認しましたが、QMediaPlayer と同じ動作を得るには多くのことを実装する必要があります。
ありがとう!
c++ - QTで複数のフォルダ/ディレクトリを操作するには?
動画ファイルを取得するまでのディレクトリの操作方法を知りたいです。まず、メイン ディレクトリは"F:/TestingVideos/"
、テスト ビデオ内に次のようなファイルがあります。キャッシュオフィス、2.ロズビルゲート、3. マイ ビデオ このビデオにはそれぞれ他のフォルダが"F:/TestingVideos/Cash Office/"
あります"F:/TestingVideos/Cash Office/20141201/"
。
これまでのところ、メソッドを実装しました:
}
私の出力はQFileInfo info;
、書き込み可能および読み取り可能の場合に当てはまります。またqDebug()<< info.absoluteFilePath()
、次の結果が得
られました。"F:/TestingVideos"
"F:/"
"F:/TestingVideos/Cash Office"
"F:/TestingVideos/Rosville"
"F:/TestingVideos/My Videos"
baseNames、つまり Cash Office、Rosville などを操作する方法が必要です...現在 ui.monitoringcomboBox->show() がベース名を表示できるため、20141201 などのフォルダーを別のコンボボックスに表示できるフォルダー。QUrlなどで動画を再生できるレベルまで、基本的にはフォルダを操作できるようにしたいです。
c++ - QMediaplayer ライブラリを使用した UDP ビデオ
私は QMediaplayer ライブラリで遊んでいます。ストリーミング ビデオ ソースでどのように機能するのか興味があったので、VLC を使用して、udp プロトコルを使用していくつかのビデオをストリーミングしました。
簡単なテストを行うために、MediaPlayer exampleという名前の Qt の例を使用しました。この例はオフライン ファイルでのみ動作するように設計されているため、Player の実装にダム関数を追加しました。
次に、main.cppファイルで、この関数を次のように呼び出します。
これは、プログラムが読み込まれると、ストリーム ソースの再生を開始することを意味します。
ここでの問題は、Qt を通じて次のエラーが発生することです。
ローカル ファイルとhttp ストリーミングでこれを行うには、うまくいきます...しかし、UDP または RTP で試してみると、常に同じエラーが発生します。
私はより多くの情報を探すのに数時間を費やしましたが、いつも同じ応答が得られます... QMLVLC を使用してください... たとえば、これを見てください。
誰もこれを前に試しましたか?ここで何が問題なのですか?
PD: これを機能させるための VLC プラグインがあることは知っていますが、これを Qt でのみ機能させたい (または、少なくとも、ここで何が起こっているかを理解してください)。
PD2: Windows 8.1、Qt 5.5 (mingw 4.9.2) を使用しており、重要なコーデックがすべてインストールされています。
前もって感謝します、
アップデート
最後に、私は新しいhttp://code.qt.ioに対処することができました。これは、udp (およびその他の) プロトコルをブロックしていると思われるコードです。おそらく、Directshowsservice で有効なストリーム ソースとして受け入れられるのは "http" と "https" だけです... 今週は、udp プロトコルを関数 doSetUrlSource に追加するために、Windows 用のマルチメディア モジュールだけを再コンパイルするために、少し時間をとってみます。そして何が起こるか見てください。誰かが最初にテストした場合は、ここでお知らせください。
更新 2
まず第一に、AddFilter メソッドが原因で QMediaPlayer が UDP/RTP コンテンツを再生できなかったと思われます...とにかく、http、https、および rtsp は完全に機能します。
第二に、udp プロトコルで奇妙な動作を発見しました。テストマルチキャスト方向として「udp://@239.1.1.1:1234」を使用しています。奇妙なことに、あるテスト中に、この方向を誤って「udp://@239.1.1.1:1234z」に設定しましたが、今回はエラーは発生しませんでした。方向には文字が含まれている必要があるようです。
qt - Qt: QMediaPlayer 停止後のアクション
QMediaPlayer のビデオが終了した後、何らかの操作/アクションを実行しようとしています。player->state()
プレーヤーの状態を確認できることと、「停止」の状態があることは知っています。しかし、特定のシグナルを使用して、この状態を特定のアクションに結合する方法を知りたいですか? 誰もこれを行った経験がありますか? またはアイデアがありますか?私はこれに対する解決策を見つけることができないようです。前もって感謝します。
android - メモリ内の mp3 データを再生するには QMediaPlayer が必要です
多くのアプリケーションでは小さなオーディオ クリップが必要だと思います。そのため、QT はメモリ スライスでの mp3 の再生をサポートしていると思います。おそらく、mp3 データをメモリ内の wav データにデコードするのが 1 つの解決策かもしれませんが、最初にすべてのデータをデコードするには時間が必要です。リアルタイム アプリケーションの場合、これはお勧めできません。また、mp3_data をファイルに保存し、QMediaPlayer にそれを再生するように要求することも意味がありません。パフォーマンスは受け入れられません。
これは、stackoverflowを含む、Googleによる多くの検索後の私のコードです:
ここで、m_buffer は QBuffer インスタンスで、mp3_data_in_memory は QByteArray インスタンスです。m_player は QMediaPlayer インスタンスです。
ここにあるコードは MacOS と iOS では動作しないという情報を得ましたが、現在は Android で実行しています。
Androidシステムのソリューションを持っている人はいますか? どうもありがとう。
c++ - QMediaPlayer app not responding when play many times in a short duration
I created a default Qt GUI app, I added void keyPressEvent(QKeyEvent* ev);
in the mainwindow class, when user presses the space, the app will plays the sound (ok) but when the user press many times in a short duration, the app will not respond. I don't know why? Help me, please!
.pro file:
mainwindow.h
mainwindow.cpp
main.cpp
(Note: I did upload mainwindow.ui. res.qrc here)