Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
lively是一款Windows下的開源免費動態(tài)桌面壁紙軟件,動畫桌面壁紙,讓您的桌面栩栩如生!lively采用C#開發(fā),并且開源在Github上!
https://github.com/rocksdanister/lively
1、使用外部編解碼器包或內(nèi)部windows編解碼器。播放.mp4,mkv,webm,avi,mov等硬件加速支持。不在桌面上時,音頻將靜音。
2、加載HTML文件或網(wǎng)址作為墻紙。運行webgl、javascript。。基本上任何能在chrome上工作的東西。支持音頻響應(yīng)壁紙,創(chuàng)建對系統(tǒng)音頻作出響應(yīng)的墻紙定制支持。
3、只需拖放youtube鏈接即可設(shè)置為桌面墻紙。可在設(shè)置中調(diào)整視頻質(zhì)量。
4、在瀏覽器中運行GLSL著色器。Shadertoy.com網(wǎng)站支持將URL作為墻紙。
直接在Github中的release中下載即可;下載后直接安裝到你想安裝到的位置,然后打開:
到這一步直接桌面右下角,右擊圖標(biāo)就可以打開該軟件了
各種設(shè)置
lively相較于其他同類型產(chǎn)品最大的優(yōu)勢在于是開源且免費的,功能還不少,并且?guī)缀醪徽加孟到y(tǒng)資源,同樣支持視頻和網(wǎng)頁!
udio音頻元素
?直到現(xiàn)在,仍然不存在一項旨在網(wǎng)頁上播放音頻的標(biāo)準(zhǔn)。
?今天,大多數(shù)音頻是通過插件(比如 Flash)來播放的。然而,并非所有瀏覽器都擁 有同樣的插件。
?HTML5 規(guī)定了在網(wǎng)頁上嵌入音頻元素的標(biāo)準(zhǔn),即使用 <audio> 元素。
屬性:
?controls顯示控制條
?loop循環(huán)播放
?autoplay自動播放
示例:
<audio controls="controls" loop="loop" autoplay="autoplay">
<source src=" ../xiangwang.mp3" />
<source src=" ../xiangwang.ogg" /> 你的瀏覽器不支持audio標(biāo)簽
</audio>
video視頻元素
?HTML5 規(guī)定了在網(wǎng)頁上嵌入視頻元素使用 <video> 元素。
屬性:
?controls顯示控制條
?loop循環(huán)播放
?autoplay自動播放
?currentTime設(shè)置或返回音頻/視頻中的當(dāng)前播放位置(以秒計)
?poster視頻封面
?width/height寬度/高度
示例:
<video controls="controls" width="750" id="video" poster="../flower.jpg">
<source src="../kuaixuewang.mp4" />
</video>
開源播放器: http://docs.videojs.com/
video方法控制
方法:
?Media.currentSrc返回當(dāng)前資源的URL
?Media.src = value返回或設(shè)置當(dāng)前資源的URL
?Media.currentTime = value設(shè)置或返回音頻/視頻當(dāng)前播放位置(以秒計)
?Media.duration返回當(dāng)前音頻/視頻的長度(以秒計)
?Media.paused是否暫停
?Media.ended是否結(jié)束
?Media.played返回已經(jīng)播放的區(qū)域
?Media.autoPlay是否自動播放
?Media.loop是否循環(huán)播放
?Media.play()播放
?Media.pause()暫停
?Media.volume=value音量,介于 0.0 與 1.0,1.0 是最高音(默認(rèn))
?Media.muted = true|false靜音
web storage儲存
?Web Storage與session和cookie類似,Web Storage也有分兩類 sessionStorage和localStorage,這兩個差別就跟session和cookie一樣, sessionStorage關(guān)閉瀏覽器后過期,localStrage不會過期,但是跟cookie不 一樣的是沒有過期時間。
特點:
?1、容量大,5M~10M,目前的形勢就5MB來考慮是比較妥當(dāng)?shù)摹?/p>
?2、不會隨著會話來傳輸。
?3、接口豐富,讀取和寫入方便
localStorage:
?localStorage 方法存儲的數(shù)據(jù)沒有時間限制。第二天、第二周或下一年之后, 數(shù)據(jù)依然可用。瀏覽器關(guān)閉數(shù)據(jù)依然存在,當(dāng)再次打開瀏覽器時數(shù)據(jù)依然存在。 localStorage用于持久化的本地儲存,可以永久保存到本地。
?本地儲存發(fā)展史
瀏覽器檢測
<script>
var h1 = document.getElementById("h1");
var h2 = document.getElementById("h2");
if (window.sessionStorage) {
h1.innerHTML = "支持sessionStorage";
} else {
h1.innerHTML = "不支持sessionStorage";
}
if (window.localStorage) {
h2.innerHTML = "支持localStorage";
} else {
h2.innerHTML = "不支持localStorage";
}
</script>
注意:需要搭建服務(wù)器環(huán)境訪問
視頻鏈接地址:http://blog.sina.com.cn/s/blog_1671244030102wxpm.html
更多精彩內(nèi)容請關(guān)注 ---- 微信公眾號:houdunit
看完不要跑記得出來吐吐槽!╰( ̄▽ ̄)╮
QFile read("./music/Nevada.mp3");
if (!read.open(QIODevice::ReadOnly))
{
qDebug() << "文件打開失敗,請重試~";
}
//下面用的對象,必須動態(tài)申請,不然構(gòu)造函數(shù)執(zhí)行完畢,局部變量內(nèi)存會被釋放
QByteArray *data = new QByteArray(read.readAll());
read.close();
QBuffer *buffer = new QBuffer(data,this);
if (!buffer->open(QIODevice::ReadWrite))
{
qDebug() << "buffer error";
}
//qDebug() << data;
QMediaPlayer *player = new QMediaPlayer(this);
player->setMedia(QMediaContent(),buffer);
player->play();
QMediaPlayer *player = new QMediaPlayer(this);
player->setMedia(QUrl("./music/MMD.mp4"));
player->play();
?
QVideoWidget* videowidget = new QVideoWidget(this);
player->setVideoOutput(videowidget);
vs中如果提示編譯器堆空間不足,則打開vcxproj工程文件,在PropertyGroup中添加如下代碼
<PropertyGroup Label="Globals">
<!-- 資源文件加載,防止編譯器堆空間不足 -->
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
</PropertyGroup>
【領(lǐng)QT開發(fā)教程學(xué)習(xí)資料,點擊下方鏈接免費領(lǐng)取↓↓,先碼住不迷路~】
點擊→領(lǐng)取「鏈接」
在Qt中,要想使計算機發(fā)出響聲,最簡單的方法是調(diào)用QApplication : : beep()靜態(tài)函數(shù)。而Qt Multimedia模塊中提供了多個類來實現(xiàn)不同層次的音頻輸入,輸出和處理。
QSound類提供了播放.wav聲音文件的方法。
Qt 提供了 GUI 應(yīng)用程序中最常用的音頻操作:異步播放聲音文件。 使用靜態(tài) play() 函數(shù)最容易做到這一點:
QSound::play("mysounds/bells.wav");
或者,首先從聲音文件創(chuàng)建一個 QSound 對象,然后調(diào)用 play() 槽:
QSound bells("mysounds/bells.wav");
bells.play();
在這兩種情況下,文件可能是本地文件或資源中的文件。
一旦創(chuàng)建了 QSound 對象,就可以查詢它的 fileName() 和 loops() 總數(shù)(即聲音播放的次數(shù))。 可以使用 setLoops() 函數(shù)更改重復(fù)次數(shù)。 播放聲音時,loopsRemaining() 函數(shù)返回剩余的重復(fù)次數(shù)。 使用 isFinished() 函數(shù)來確定聲音是否播放完畢。
使用 QSound 對象播放的聲音可能會比靜態(tài) play() 函數(shù)使用更多的內(nèi)存,但它也可能播放得更快(取決于底層平臺的音頻設(shè)施)。
如果您需要更好地控制播放聲音,請考慮 QSoundEffect 或 QAudioOutput 類。
QSound(const QString &filename, QObject *parent = nullptr)
virtual ~QSound()
QString fileName() const
bool isFinished() const
int loops() const
int loopsRemaining() const
void setLoops(int number)
void play()
void stop()
void play(const QString &filename)
QSoundEffect類提供了一種播放低延遲聲音效果的方法 。
這個類允許你以較低的延遲方式播放未壓縮的音頻文件(通常是WAV文件),并且適用于“反饋”類型的聲音,以響應(yīng)用戶的動作(例如虛擬鍵盤聲音,彈出對話框的正面或負(fù)面反饋,或游戲聲音)。 如果低延遲不重要,可以考慮使用QMediaPlayer類,因為它支持更廣泛的媒體格式,并且資源消耗更少。
看個例子:
QSoundEffect effect;
effect.setSource(QUrl::fromLocalFile("F:/MyCode/QtObjectCode/QtCourse/soundeffect/video_call.wav"));
effect.setLoopCount(QSoundEffect::Infinite);
effect.setVolume(0.8f);
effect.play();
通常應(yīng)該重用音效,這樣可以提前完成所有解析和準(zhǔn)備工作,并且只在必要時觸發(fā)。 這有助于降低延遲音頻播放。
class MyGame
{
public:
MyGame(): m_videoCall(this)
{
m_videoCall.setSource(QUrl::fromLocalFile("video_call.wav"));
m_videoCall.setVolume(0.25f);
?
// Set up click handling etc.
connect(clickSource, &QPushButton::clicked, &m_videoCall, &QSoundEffect::play);
}
private:
QSoundEffect m_videoCall;
}
由于QSoundEffect需要更多的資源來實現(xiàn)較低的延遲播放,平臺可能會限制同時播放聲音效果的數(shù)量。
【領(lǐng)QT開發(fā)教程學(xué)習(xí)資料,點擊下方鏈接免費領(lǐng)取↓↓,先碼住不迷路~】
點擊→領(lǐng)取「鏈接」
//設(shè)置源(wav文件路徑)
void setSource(const QUrl &url)
//設(shè)置循環(huán)次數(shù)
void setLoopCount(int loopCount)
//設(shè)置靜音
void setMuted(bool muted)
//設(shè)置音量0~1之間
void setVolume(qreal volume)
//音效是否加載完畢
bool isLoaded() const
//是否是靜音
bool isMuted() const
//是否正在播放
bool isPlaying() const
void play() //播放
void stop() //停止
void categoryChanged()
void loadedChanged()
void loopCountChanged()
void loopsRemainingChanged()
void mutedChanged()
void playingChanged()
void sourceChanged()
void statusChanged()
void volumeChanged()
枚舉 | 描述 |
QSoundEffect::Null | 未設(shè)置源或源為空。 |
QSoundEffect::Loading | SoundEffect 正在嘗試加載源。 |
QSoundEffect::Ready | 源已加載并準(zhǔn)備好播放。 |
QSoundEffect::Error | 運行過程中出現(xiàn)錯誤,例如加載源失敗。 |
QMediaPlayer類是一個高級媒體播放類。 它可以用來播放歌曲、電影和網(wǎng)絡(luò)廣播等內(nèi)容。 要播放的內(nèi)容被指定為QMediaContent對象,可以將其視為附加了附加信息的主要或規(guī)范URL。 當(dāng)提供QMediaContent時,可以開始播放。
QMediaPlayer player;
player.setMedia(QUrl::fromLocalFile("F:/MyCode/QtObjectCode/QtCourse/soundeffect/That-Girl.mp3"));
player.setVolume(50);
player.play();
QVideoWidget可以與QMediaPlayer一起用于視頻渲染,QMediaPlaylist用于訪問播放列表功能。
QVideoWidget wid;
wid.show();
?
QMediaPlaylist playList;
playList.addMedia(QUrl::fromLocalFile("F:/MyCode/QtObjectCode/QtCourse/soundeffect/That-Girl.mp3"));
playList.addMedia(QUrl::fromLocalFile("F:/MyCode/QtObjectCode/QtCourse/soundeffect/干坤坤.mp4"));
?
QMediaPlayer player;
player.setPlaylist(&playList);
//player.setMedia(QUrl::fromLocalFile("F:/MyCode/QtObjectCode/QtCourse/soundeffect/That-Girl.mp3"));
player.setVolume(50);
playList.next();
player.setVideoOutput(&wid);
player.play();
//該值是當(dāng)前媒體的總播放時間,以毫秒為單位。 該值可能在QMediaPlayer對象的生命周期中發(fā)生變化,并且可能在初始回放開始時不可用,請連接到durationChanged()信號來接收狀態(tài)通知。
qint64 duration() const
//將QVideoWidget視頻輸出附加到媒體播放器。
void setVideoOutput(QVideoWidget *output)
void setVideoOutput(QGraphicsVideoItem *output)
void setVideoOutput(QAbstractVideoSurface *surface)
//暫停播放當(dāng)前源
void pause()
//開始或恢復(fù)播放當(dāng)前源
void play()
//設(shè)置當(dāng)前媒體源。 使用mediaStatusChanged()和error()信號,以便在加載媒體和加載過程中發(fā)生錯誤時得到通知
void setMedia(const QMediaContent &media, QIODevice *stream = nullptr)
//設(shè)置靜音
void setMuted(bool muted)
//設(shè)置倍速播放
void setPlaybackRate(qreal rate)
//設(shè)置播放列表
void setPlaylist(QMediaPlaylist *playlist)
//設(shè)置播放位置,以媒體開始后的毫秒數(shù)為單位。 位置的周期性變化將用信號positionChanged()表示,更新間隔可以用QMediaObject的方法setNotifyInterval()設(shè)置。
void setPosition(qint64 position)
//此屬性保存當(dāng)前播放音量。 播放音量是線性縮放的,從0(靜音)到100(全音量)。默認(rèn)為100
void setVolume(int volume)
//停止播放,并將播放位置重置到開始
void stop()
//表示當(dāng)前播放內(nèi)容已更改為media。
void currentMediaChanged(const QMediaContent &media)
//表示內(nèi)容的持續(xù)時間已更改為持續(xù)時間,以毫秒表示。
void durationChanged(qint64 duration)
//產(chǎn)生了錯誤
void error(QMediaPlayer::Error error)
//表示媒體來源已轉(zhuǎn)變?yōu)閙edia。
void mediaChanged(const QMediaContent &media)
//表示當(dāng)前媒體的狀態(tài)已經(jīng)改變
void mediaStatusChanged(QMediaPlayer::MediaStatus status)
//靜音狀態(tài)改變
void mutedChanged(bool muted)
//播放速率改變
void playbackRateChanged(qreal rate)
//播放位置改變
void positionChanged(qint64 position)
//表示播放器對象的狀態(tài)已經(jīng)改變。
void stateChanged(QMediaPlayer::State state)
//音量改變
void volumeChanged(int volume)
(enum QMediaPlayer::Error)媒體播放器產(chǎn)生的具體錯誤。
枚舉 | 描述 |
MediaPlayer::NoError | 沒有錯誤發(fā)生 |
QMediaPlayer::ResourceError | 無法解析媒體源 |
QMediaPlayer::FormatError | 媒體資源的格式不受(完全)支持。 重新播放是可能的,但沒有音頻或視頻組件。 |
QMediaPlayer::NetworkError | 網(wǎng)絡(luò)錯誤 |
QMediaPlayer::AccessDeniedError | 沒有播放媒體資源的適當(dāng)權(quán)限。 |
QMediaPlayer::ServiceMissingError | 找不到有效的播放服務(wù),無法繼續(xù)播放。 |
(enum QMediaPlayer::Flag)播放標(biāo)志。
枚舉 | 描述 |
QMediaPlayer::LowLatency | 該播放器預(yù)計將用于簡單的音頻格式,播放沒有明顯的延遲。 這種回放服務(wù)可以用于蜂鳴聲、鈴聲等。 |
QMediaPlayer::StreamPlayback | 該播放器預(yù)計將播放基于QIODevice的流。 如果傳遞給QMediaPlayer構(gòu)造器,將選擇支持流回放的服務(wù)。 |
QMediaPlayer::VideoSurface | 期望播放器能夠呈現(xiàn)為QAbstractVideoSurface輸出。 |
(enum QMediaPlayer::MediaStatus)定義媒體播放器當(dāng)前媒體的狀態(tài)。
枚舉 | 描述 |
QMediaPlayer::UnknownMediaStatus | 無法確定媒體的狀態(tài)。 |
QMediaPlayer::NoMedia | 沒有當(dāng)前的媒體。 播放器處于停止?fàn)顟B(tài)。 |
QMediaPlayer::LoadingMedia | 當(dāng)前媒體正在加載中。 播放器可能處于任何狀態(tài)。 |
QMediaPlayer::LoadedMedia | 已加載當(dāng)前媒體。 播放器處于停止?fàn)顟B(tài)。 |
QMediaPlayer::StalledMedia | 由于緩沖不足或其他一些臨時中斷,當(dāng)前媒體的播放已停止。 播放器處于PlayingState或PausedState |
QMediaPlayer::BufferingMedia | 播放器正在緩沖數(shù)據(jù),但緩沖了足夠的數(shù)據(jù)以供播放。 播放器處于PlayingState或PausedState。 |
QMediaPlayer::BufferedMedia | 播放器已經(jīng)完全緩沖了當(dāng)前的媒體。 播放器處于PlayingState或PausedState。 |
QMediaPlayer::EndOfMedia | 播放已經(jīng)結(jié)束。 播放器處于停止?fàn)顟B(tài)。 |
QMediaPlayer::InvalidMedia | 當(dāng)前媒體無法播放。 播放器處于停止?fàn)顟B(tài)。 |
(enum QMediaPlayer::State)媒體播放器的當(dāng)前狀態(tài)。
枚舉 | 描述 |
QMediaPlayer::StoppedState | 播放停止?fàn)顟B(tài) |
QMediaPlayer::PlayingState | 播放進行狀態(tài) |
QMediaPlayer::PausedState | 播放暫停狀態(tài) |
QMediaPlaylist類提供了要播放的媒體內(nèi)容列表。
QMediaPlaylist旨在與其他媒體對象一起使用,如QMediaPlayer。
QMediaPlaylist允許訪問服務(wù)固有的播放列表功能(如果可用的話),否則它提供本地內(nèi)存播放列表實現(xiàn)。
playlist = new QMediaPlaylist;
playlist->addMedia(QUrl("http://example.com/movie1.mp4"));
playlist->addMedia(QUrl("http://example.com/movie2.mp4"));
playlist->addMedia(QUrl("http://example.com/movie3.mp4"));
playlist->setCurrentIndex(1);
?
player = new QMediaPlayer;
player->setPlaylist(playlist);
?
videoWidget = new QVideoWidget;
player->setVideoOutput(videoWidget);
videoWidget->show();
?
player->play();
根據(jù)播放列表源代碼的實現(xiàn),大多數(shù)播放列表更改操作可以是異步的。
【領(lǐng)QT開發(fā)教程學(xué)習(xí)資料,點擊下方鏈接免費領(lǐng)取↓↓,先碼住不迷路~】
點擊→領(lǐng)取「鏈接」
QMediaPlaylist(QObject *parent = nullptr)
virtual ~QMediaPlaylist()
bool addMedia(const QMediaContent &content)
bool addMedia(const QList<QMediaContent> &items)
bool insertMedia(int pos, const QMediaContent &content)
bool insertMedia(int pos, const QList<QMediaContent> &items)
bool removeMedia(int pos)
bool removeMedia(int start, int end)
bool clear()
bool save(const QUrl &location, const char *format = nullptr)
bool save(QIODevice *device, const char *format)
void load(const QNetworkRequest &request, const char *format = nullptr)
void load(const QUrl &location, const char *format = nullptr)
void load(QIODevice *device, const char *format = nullptr)
int currentIndex() const
QMediaContent currentMedia() const
QMediaContent media(int index) const
int nextIndex(int steps = 1) const
int previousIndex(int steps = 1) const
int mediaCount() const
bool moveMedia(int from, int to)
void setPlaybackMode(QMediaPlaylist::PlaybackMode mode)
QMediaPlaylist::Error error() const
QString errorString() const
bool isEmpty() const
bool isReadOnly() const
void next()
void previous()
void setCurrentIndex(int playlistPosition)
void shuffle()
void currentIndexChanged(int position)
void currentMediaChanged(const QMediaContent &content)
void loadFailed()
void loaded()
void mediaAboutToBeInserted(int start, int end)
void mediaAboutToBeRemoved(int start, int end)
void mediaChanged(int start, int end)
void mediaInserted(int start, int end)
void mediaRemoved(int start, int end)
void playbackModeChanged(QMediaPlaylist::PlaybackMode mode)
(enum QMediaPlaylist::Error)QMediaPlaylist錯誤碼。
枚舉 | 描述 |
QMediaPlaylist::NoError | 沒有錯誤 |
QMediaPlaylist::FormatError | 格式錯誤 |
QMediaPlaylist::FormatNotSupportedError | 格式不支持 |
QMediaPlaylist::NetworkError | 網(wǎng)絡(luò)錯誤 |
QMediaPlaylist::AccessDeniedError | 訪問錯誤(拒絕訪問) |
(enum QMediaPlaylist::PlaybackMode)描述了播放列表中的播放順序。
枚舉 | 描述 |
QMediaPlaylist::CurrentItemOnce | 單曲播放一次 |
QMediaPlaylist::CurrentItemInLoop | 單曲循環(huán) |
QMediaPlaylist::Sequential | 順序播放(列表播放完結(jié)束) |
QMediaPlaylist::Loop | 列表循環(huán)(列表播放完,從頭開始繼續(xù)播放) |
QMediaPlaylist::Random | 隨機播放 |
QMediaContent類提供對與媒體內(nèi)容相關(guān)的資源的訪問。
QMediaContent在多媒體框架內(nèi)用作媒體內(nèi)容的邏輯句柄。 一個QMediaContent對象包含一個QNetworkRequest,它提供了內(nèi)容的URL。
非空QMediaContent將始終具有對通過request()方法可用的內(nèi)容的引用。
另外,QMediaContent可以表示播放列表,并包含指向有效QMediaPlaylist對象的指針。 在這種情況下URL是可選的,可以是空的,也可以指向播放列表的URL。
QMediaContent(QMediaPlaylist *playlist, const QUrl &contentUrl = QUrl(), bool takeOwnership = false)
QMediaContent(const QMediaContent &other)
QMediaContent(const QNetworkRequest &request)
QMediaContent(const QUrl &url)
QMediaContent()
QMediaContent &operator=(const QMediaContent &other)
~QMediaContent()
bool isNull() const
QMediaPlaylist *playlist() const
QNetworkRequest request() const
bool operator!=(const QMediaContent &other) const
bool operator==(const QMediaContent &other) const
QMediaPlayer類可用來播放視頻,只不過需要搭配專門的視頻顯示控件來使用。
void setVideoOutput(QVideoWidget *output)
void setVideoOutput(QGraphicsVideoItem *output)
//當(dāng)前媒體的視頻是否可用,如果可用,可以使用QVideoWidget類來查看視頻。
bool isVideoAvailable() const
QVideoWidget類提供了一個小部件,用于呈現(xiàn)由媒體對象生成的視頻。
將 QVideoWidget 附加到 QMediaObject 允許它顯示該媒體對象的視頻或圖像輸出。 QVideoWidget 通過在其構(gòu)造函數(shù)中傳遞指向 QMediaObject 的指針附加到媒體對象,并通過銷毀 QVideoWidget 來分離。
player = new QMediaPlayer;
?
playlist = new QMediaPlaylist(player);
playlist->addMedia(QUrl("http://example.com/myclip1.mp4"));
playlist->addMedia(QUrl("http://example.com/myclip2.mp4"));
?
videoWidget = new QVideoWidget;
player->setVideoOutput(videoWidget);
?
videoWidget->show();
playlist->setCurrentIndex(1);
player->play();
注意:一次只能將一個顯示輸出附加到媒體對象。
QVideoWidget(QWidget *parent = nullptr)
virtual ~QVideoWidget()
Qt::AspectRatioMode aspectRatioMode() const
int brightness() const //亮度
int contrast() const //對比度
int hue() const //色調(diào)
bool isFullScreen() const //是否全屏
int saturation() const //飽和度
//設(shè)置視頻縮放時,寬度和高度的變化模式
void setAspectRatioMode(Qt::AspectRatioMode mode)
//調(diào)整顯示視頻的亮度。有效亮度值范圍在 -100 到 100 之間,默認(rèn)值為 0。
void setBrightness(int brightness)
//調(diào)整顯示的視頻的對比度。有效對比度值范圍在-100到100之間,默認(rèn)值為0。
void setContrast(int contrast)
//調(diào)整顯示視頻的色調(diào)。有效的色調(diào)值范圍在 -100 到 100 之間,默認(rèn)值為 0。
void setHue(int hue)
//調(diào)整顯示視頻的飽和度。 有效的飽和度值范圍在-100到100之間,默認(rèn)值是0。
void setSaturation(int saturation)
//設(shè)置窗口全屏顯示
void setFullScreen(bool fullScreen)
//亮度改變
void brightnessChanged(int brightness)
//對比度改變
void contrastChanged(int contrast)
//是否全屏狀態(tài)改變
void fullScreenChanged(bool fullScreen)
//飽和度改變
void saturationChanged(int saturation)
//色調(diào)改變
void hueChanged(int hue)
https://www.cnblogs.com/lxuechao/p/12677357.html
QCameraInfo 類提供有關(guān)相機設(shè)備的一般信息。
QCameraInfo 允許您查詢系統(tǒng)上當(dāng)前可用的相機設(shè)備。
靜態(tài)函數(shù) defaultCamera() 和 availableCameras() 為您提供所有可用相機的列表。
此示例打印所有可用相機的名稱:
const QList<QCameraInfo> cameras = QCameraInfo::availableCameras();
for (const QCameraInfo &cameraInfo : cameras)
qDebug() << cameraInfo.deviceName();
一個QCameraInfo可以用來構(gòu)造一個QCamera。 下面的例子實例化所有可用相機設(shè)備中第一個相機設(shè)備QCamera:
const QList<QCameraInfo> cameras = QCameraInfo::availableCameras();
camera = new QCamera(cameras.first());
你也可以使用QCameraInfo來獲得一個相機設(shè)備的一般信息,例如描述,在系統(tǒng)上的物理位置,或相機傳感器的方向。
QCamera myCamera;
QCameraInfo cameraInfo(myCamera);
?
if (cameraInfo.position() == QCamera::FrontFace)
qDebug() << "攝像頭位于硬件系統(tǒng)的正面。";
else if (cameraInfo.position() == QCamera::BackFace)
qDebug() << "攝像頭位于硬件系統(tǒng)的背面。";
?
qDebug() << "相機傳感器方向是 " << cameraInfo.orientation() << " 度.";
QCamera類為系統(tǒng)攝像機設(shè)備提供接口。
QCamera可以與QCameraViewfinder一起使用,用于取景器顯示,QMediaRecorder用于視頻錄制,QCameraImageCapture用于圖像拍攝。
你可以使用QCameraInfo列出可用的相機并選擇使用哪一個。
QCamera::CaptureModes captureMode() const
void setCaptureMode(QCamera::CaptureModes mode)
void setViewfinder(QVideoWidget *viewfinder)
void setViewfinder(QGraphicsVideoItem *viewfinder)
捕獲模式
枚舉 | 描述 |
QCamera::CaptureViewfinder | 取景器模式,只是簡單的顯示 |
QCamera::CaptureStillImage | 幀捕獲模式,比如:拍照 |
QCamera::CaptureVideo | 視頻捕獲模式,比如:錄制視頻 |
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。