国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

測(cè)試C#調(diào)用Aplayer播放視頻(3:編寫(xiě)簡(jiǎn)易播放器)

這篇具有很好參考價(jià)值的文章主要介紹了測(cè)試C#調(diào)用Aplayer播放視頻(3:編寫(xiě)簡(jiǎn)易播放器)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

??學(xué)習(xí)了參考文獻(xiàn)1中的示例代碼,也找出了前一篇文章中自己測(cè)試控件但無(wú)法播放視頻的問(wèn)題(沒(méi)有將解碼庫(kù)文件復(fù)制到可執(zhí)行程序所在的codecs文件夾內(nèi)),本文基于A(yíng)Player組件編寫(xiě)簡(jiǎn)單的視頻播放器,主要實(shí)現(xiàn)以下功能:

序號(hào) 功能 說(shuō)明
1 自定義logo 調(diào)用SetCustomLogo函數(shù)設(shè)置未播放視頻時(shí)的顯示圖片,圖片來(lái)自參考文獻(xiàn)2
2 打開(kāi)文件 調(diào)用Open函數(shù)打開(kāi)并播放視頻文件
3 定時(shí)刷新播放信息 參照參考文獻(xiàn)1中的demo,使用定時(shí)器定時(shí)刷新當(dāng)前播放進(jìn)度,調(diào)用GetDuration獲取視頻總時(shí)長(zhǎng),調(diào)用GetPosition獲取當(dāng)前播放時(shí)間,同時(shí)在OnOpenSucceeded中啟動(dòng)定時(shí)器,在OnStateChanged事件中停止定時(shí)器
4 暫停/播放/停止 調(diào)用Pause/Play/Close函數(shù)暫停/播放/停止視頻
5 設(shè)置音量 調(diào)用SetVolume設(shè)置音量,盡在0-100范圍內(nèi)調(diào)節(jié)音量,并未使用APlayer的10倍放大
6 拖拽時(shí)間條 調(diào)用SetPosition函數(shù)在Trackbar的Scroll事件中重新設(shè)置播放時(shí)間
7 快進(jìn)/快退 調(diào)用SetPosition函數(shù)快進(jìn)/快退10秒

??最后是程序界面、播放視頻截圖及主要代碼:
測(cè)試C#調(diào)用Aplayer播放視頻(3:編寫(xiě)簡(jiǎn)易播放器),dotnet編程,c#,Aplayer,視頻播放器測(cè)試C#調(diào)用Aplayer播放視頻(3:編寫(xiě)簡(jiǎn)易播放器),dotnet編程,c#,Aplayer,視頻播放器

public Form1()
{
   this.axPlayer1.SetCustomLogo(((Bitmap)Bitmap.FromFile("gundam.jpg")).GetHbitmap().ToInt32());
   axPlayer1.OnOpenSucceeded += new EventHandler(OnOpenSucceeded);
   axPlayer1.OnStateChanged += new _IPlayerEvents_OnStateChangedEventHandler(OnStateChanged);
}

string TimeToString(TimeSpan span)
{
   return span.Hours.ToString("00") + ":" +
   span.Minutes.ToString("00") + ":" +
   span.Seconds.ToString("00");
}

void OnOpenSucceeded(object sender, EventArgs e)
{
   lblProgress.Text= "00:00:00/"+TimeToString(TimeSpan.FromMilliseconds(axPlayer1.GetDuration()));            
   tbTimeline.Maximum = axPlayer1.GetDuration();
   timer1.Start();
}

private void UpdatePlayInfo(object sender, EventArgs e)
{
   lblProgress.Text = TimeToString(TimeSpan.FromMilliseconds(axPlayer1.GetPosition()))+"/" + TimeToString(TimeSpan.FromMilliseconds(axPlayer1.GetDuration()));
   tbTimeline.Value = axPlayer1.GetPosition() < 0 ? 0 : axPlayer1.GetPosition();
}

private void tbVolumn_ValueChanged(object sender, EventArgs e)
{
   axPlayer1.SetVolume(tbVolumn.Value);
}

private void btnForward_Click(object sender, EventArgs e)
{
   axPlayer1.SetPosition(axPlayer1.GetPosition() + 10000);
}

private void btnBack_Click(object sender, EventArgs e)
{
   int timeLine = axPlayer1.GetPosition() - 10000;
   axPlayer1.SetPosition(timeLine < 0 ? 0 : timeLine);
}

private void btnClose_Click(object sender, EventArgs e)
{
   axPlayer1.Close();
}

private void btnPlay_Click(object sender, EventArgs e)
{
   axPlayer1.Play();
}

private void btnPause_Click(object sender, EventArgs e)
{
   axPlayer1.Pause();
}

void OnStateChanged(object sender, _IPlayerEvents_OnStateChangedEvent e)
{
   switch (e.nNewState)
   {
       case 0:
           tbTimeline.Value = 0;
           lblProgress.Text = "00:00:00/00:00:00" ;   
           timer1.Stop();
           break;                
   }
}

private void btnOpen_Click(object sender, EventArgs e)
{
   using (OpenFileDialog ofd = new OpenFileDialog())
   {
       ofd.Filter = "mp4|*.mp4|avi|*.avi|rm|*.rm|rmvb|*.rmvb|flv|*.flv|xr|*.xr|所有文件|*.*";
       ofd.Multiselect = false;
       if (ofd.ShowDialog() == DialogResult.OK)
       {
           axPlayer1.Open(ofd.FileName);
       }
   }
}

private void tbTimeline_Scroll(object sender, EventArgs e)
{
   axPlayer1.SetPosition(tbTimeline.Value);
   lblProgress.Text = TimeToString(TimeSpan.FromMilliseconds(axPlayer1.GetPosition())) + "/" + TimeToString(TimeSpan.FromMilliseconds(axPlayer1.GetDuration()));
}

參考文獻(xiàn):
[1]https://blog.csdn.net/qq_45533937/article/details/115800927
[2]https://www.hpoi.net/hobby/10836文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-744256.html

到了這里,關(guān)于測(cè)試C#調(diào)用Aplayer播放視頻(3:編寫(xiě)簡(jiǎn)易播放器)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ChatGpt+人工修正 PyQt5 實(shí)現(xiàn)簡(jiǎn)易視頻播放器

    支持功能: 1. 視頻播放速度調(diào)整 2. 視頻聲音調(diào)整 3. 視頻當(dāng)前播放幀截幀(用的ffmpeg 怎么裝自己百度去,截取準(zhǔn)確度很高,QT自帶的截幀那玩意信號(hào)不觸發(fā),不好使) 4. 視頻暫停

    2024年02月16日
    瀏覽(20)
  • 【Harmony OS】【ArkUI】ets開(kāi)發(fā) 簡(jiǎn)易視頻播放器

    前言:這一次我們來(lái)使用ets 的Swiper 組件、List 組件和Video 組件制作一個(gè)簡(jiǎn)易的視頻播放器。本篇是以HarmonyOS 官網(wǎng)的codelab 簡(jiǎn)易視頻播放器(eTS )為基礎(chǔ)進(jìn)行編寫(xiě)。本篇最主要的內(nèi)容就是一個(gè)主界面包括頂部的視頻海報(bào)輪播,中部的視頻播放列表,以及點(diǎn)擊海報(bào)和播放列表進(jìn)

    2023年04月27日
    瀏覽(22)
  • 【OpenCV+Qt】實(shí)現(xiàn)簡(jiǎn)易視頻播放器——支持進(jìn)度條拖動(dòng)

    【OpenCV+Qt】實(shí)現(xiàn)簡(jiǎn)易視頻播放器——支持進(jìn)度條拖動(dòng)

    OpenCV實(shí)現(xiàn)視頻播放器,其思路大致就是在線(xiàn)程中使用OpenCV中的VideoCapture循環(huán)讀取本地視頻的每一幀Mat,然后發(fā)送到界面轉(zhuǎn)換成QImage進(jìn)行顯示,而進(jìn)度條拖動(dòng)則用到了VideoCapture中的set函數(shù),進(jìn)度條則是使用Qslider;并且通過(guò)自定義新的進(jìn)度條類(lèi)實(shí)現(xiàn)點(diǎn)擊跳轉(zhuǎn)功能; 效果: 1.進(jìn)行

    2023年04月08日
    瀏覽(24)
  • 038-第三代軟件開(kāi)發(fā)-簡(jiǎn)易視頻播放器-自定義Slider (二)

    038-第三代軟件開(kāi)發(fā)-簡(jiǎn)易視頻播放器-自定義Slider (二)

    : Qt 、 Qml 、 3 、 4 、 5 歡迎來(lái)到我們的 QML C++ 項(xiàng)目!這個(gè)項(xiàng)目結(jié)合了 QML(Qt Meta-Object Language)和 C++ 的強(qiáng)大功能,旨在開(kāi)發(fā)出色的用戶(hù)界面和高性能的后端邏輯。 在項(xiàng)目中,我們利用 QML 的聲明式語(yǔ)法和可視化設(shè)計(jì)能力創(chuàng)建出現(xiàn)代化的用戶(hù)界面。

    2024年02月07日
    瀏覽(29)
  • 用Python編寫(xiě)一個(gè)通用視頻播放器:讓您觀(guān)看任何類(lèi)型的正經(jīng)視頻!

    用Python編寫(xiě)一個(gè)通用視頻播放器:讓您觀(guān)看任何類(lèi)型的正經(jīng)視頻! 在這篇文章中,我將向您展示如何使用Python編寫(xiě)一個(gè)簡(jiǎn)單但功能強(qiáng)大的視頻播放器。這個(gè)播放器將能夠處理各種視頻文件格式,并提供基本的播放、暫停、停止和進(jìn)度控制功能。讓我們開(kāi)始吧! 首先,我們需

    2024年02月03日
    瀏覽(24)
  • Qt/C++編寫(xiě)手機(jī)版本視頻播放器和Onvif工具(可云臺(tái)和錄像)

    Qt/C++編寫(xiě)手機(jī)版本視頻播放器和Onvif工具(可云臺(tái)和錄像)

    用Qt+ffmpeg寫(xiě)播放器很多人有疑問(wèn),為何不用Qt自己的多媒體框架來(lái)寫(xiě),最重要的原因是Qt自帶的目前都依賴(lài)具體的本地解碼器,如果解碼器不支持,那就是歇菜的,最多支持個(gè)MP4格式,而且在手機(jī)上也都是支持本地少部分格式的文件,對(duì)于各種視頻流完全無(wú)能無(wú)力。而ffmpeg就不

    2024年02月10日
    瀏覽(25)
  • html5視頻播放器代碼調(diào)用實(shí)例(視頻切換\倍速切換)

    html5視頻播放器代碼調(diào)用實(shí)例(視頻切換\倍速切換)

    本文將對(duì)視頻播放相關(guān)的功能進(jìn)行說(shuō)明,包括初始化播放器、播放器尺寸設(shè)置、視頻切換、倍速切換、視頻預(yù)覽、自定義視頻播放的開(kāi)始/結(jié)束時(shí)間、禁止拖拽進(jìn)度、播放器皮膚、控件按鈕以及播放控制等。 ?圖 / html5視頻播放器調(diào)用效果(倍速切換) ? ?圖 / html5視頻播放器

    2024年02月07日
    瀏覽(30)
  • <Python>PyQt5+ffmpeg,簡(jiǎn)單視頻播放器的編寫(xiě)(解碼器:K-lite)

    <Python>PyQt5+ffmpeg,簡(jiǎn)單視頻播放器的編寫(xiě)(解碼器:K-lite)

    更新日志: 202211251640:第一版,基本功能:視頻導(dǎo)入,播放、暫停、播放時(shí)間顯示、音量控制 概述:本文是利用PyQt5加上ffmpeg來(lái)編寫(xiě)一個(gè)具備基本功能的視頻播放器(播放、暫停、進(jìn)度調(diào)整、音量調(diào)整、視頻播放列表、文件夾導(dǎo)入視頻等) 實(shí)現(xiàn)步驟設(shè)想:PyQt制作UI界面,利

    2024年02月16日
    瀏覽(91)
  • uniapp - 微信小程序接入騰訊視頻播放器功能插件,uniapp開(kāi)發(fā)微信小程序端調(diào)用引入并使用騰訊視頻播放組件完整全流程(詳細(xì)示例源碼,一鍵復(fù)制開(kāi)箱即用)

    uniapp - 微信小程序接入騰訊視頻播放器功能插件,uniapp開(kāi)發(fā)微信小程序端調(diào)用引入并使用騰訊視頻播放組件完整全流程(詳細(xì)示例源碼,一鍵復(fù)制開(kāi)箱即用)

    在uniapp 微信小程序項(xiàng)目中,集成騰訊視頻功能插件,實(shí)現(xiàn)播放騰訊視頻效果,附帶詳細(xì)示例源碼及注釋?zhuān)?你可以跟著步驟一步步來(lái),保證幾分鐘就能快速在uniapp小程序項(xiàng)目中植入騰訊視頻功能!

    2024年02月12日
    瀏覽(95)
  • PyQt5實(shí)現(xiàn)簡(jiǎn)易音樂(lè)播放器

    PyQt5實(shí)現(xiàn)簡(jiǎn)易音樂(lè)播放器

    環(huán)境 vscode python 3.10.0 PyQt5 5.15.4 功能目標(biāo) 能夠讀取本地的音樂(lè)文件,并實(shí)現(xiàn)播放的開(kāi)關(guān)、曲目的切換和音量的加減 具體實(shí)現(xiàn) 新建一個(gè)文件夾,在文件夾下再新建一個(gè)文件夾,命名為music,將歌曲放入其中。在vscode中打開(kāi)該文件夾。 在QtDesigner中搭建出UI界面,并使用pyuic工具轉(zhuǎn)

    2024年02月13日
    瀏覽(17)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包