日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Xamarin的播放音频和视频的媒体管理插件

發布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Xamarin的播放音频和视频的媒体管理插件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

媒體應用程序比其他應用程序更受益于與本地平臺一起工作。有些事情,比如處理音頻焦點的中斷、網絡連接以及通知和其他回放控件之間的通信,這是一件復雜的事情。

為使Xamarin開發訪問這些本地平臺的功能,我們決定建立一個跨平臺的Xamarin插件,抽象了困難。我們使用誘餌和開關模式創建了一個可移植類庫,它包含了本機代碼的所有接口,在應用程序中共享基類,使你盡可能輕松地在你的手機應用程序中與音頻和視頻交互。

?Xamarin媒體管理插件 設計簡單易用,具有以下特點:

  • 從遠程和本地源本地播放媒體文件
  • 本地媒體通知和遠程控件
  • 播放狀態(播放、緩沖、加載、暫停、進度)

最重要的是,媒體管理支持所有平臺的插件, 包括iOS, Android, UWP, macOS, tvOS,甚至Xamarin.Forms。在這篇博客中,我們將探討Xamarin的媒體管理插件的各種組件和如何可以輕松地集成到您的移動應用程序。

音頻

在玩視頻,你的眼睛和耳朵都會用。播放音頻時,您正在收聽,但也可以同時使用不同的應用程序。每個用例有不同的設計。

音頻播放器并不總是需要用戶界面可見的。一旦開始播放音頻,播放器就可以作為后臺任務運行。用戶可以切換到另一個應用程序,并在繼續監聽的同時工作。

播放音頻只需要一行代碼,并為您處理所有這些操作:

點擊(此處)折疊或打開

  • await CrossMediaManager.Current.Play("http://www.montemagno.com/sample.mp3");

  • Android Exo播放器

    ExoPlayer 是公開低級Android音頻API的開源庫。ExoPlayer支持高性能功能比如DASH 和HLS流,這些在MediaPlayer中是不可用的。您可以自定義代碼的能力,使得它很容易添加新的組件。ExoPlayer只能與Android版本4.1和更高版本一起使用。

    利用ExoPlayer,在`MainActivity`中添加下面的代碼 :


    點擊(此處)折疊或打開

  • ((MediaManagerImplementation)CrossMediaManager.Current).MediaSessionManager = new MediaSessionManager(Application.Context, typeof(ExoPlayerAudioService));
  • var exoPlayer = new ExoPlayerAudioImplementation(((MediaManagerImplementation)CrossMediaManager.Current).MediaSessionManager);
  • CrossMediaManager.Current.AudioPlayer = exoPlayer;

  • 視頻

    視頻應用程序需要一個窗口來查看內容。由于這個原因,視頻應用程序通常在一個屏幕上實現。

    點擊(此處)折疊或打開

  • CrossMediaManager.Current.Play("https://archive.org/download/BigBuckBunny_328/BigBuckBunny_512kb.mp4", MediaFileType.Video);

  • 通知

    一個精心設計的媒體應用程序應該與其他播放音頻的應用程序“配合得很好”。它應該準備分享手機,并與其他應用程序在您的設備上使用音頻。它還應該對設備上的硬件控制作出響應,包括:

    • 當用戶調整硬件音量控制時更改音量
    • 如果耳機在使用中斷開,請停止播放。
    • 當另一個應用接管音頻輸出流時,停止播放,或者降低音量。

    媒體按鈕是在Android設備和其他外圍設備上找到的硬件按鈕;例如,藍牙耳機上的暫停/播放按鈕。


    ????

    排隊音頻和視頻

    如果您想播放一系列媒體條目,那么有一個隊列是有幫助的。將媒體文件列表添加到隊列中,簡單地CrossMediaManager.Current.Play() 模擬器MediaFiles。排隊,您可以重新洗牌和重復播放,循環通過某些媒體文件,等等。

    可以通過以下方式訪問隊列:

    點擊(此處)折疊或打開

  • var queue = CrossMediaManager.Current.MediaQueue;

  • 媒體信息

    媒體文件包含大量關于該文件的信息。可以從元數據中提取標題、專輯、藝術家等更多細節。使用MediaManager非常容易實現:


    點擊(此處)折疊或打開

  • CrossMediaManager.Current.MediaFileChanged += (object sender, MediaFileChangedEventArgs e) => {
  • var artist = e.File.Metadata.Artist;
  • ????// Access any other metadata property through the file
  • };

  • Xamarin.Forms

    MediaManager能夠使用本地應用,也可以用在Xamarin.Forms應用,通過在本地視頻視圖中的一個自定義渲染器實現:

    點擊(此處)折疊或打開

  • forms:VideoView HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"
  • ?????????????????????Source="YourVideoFile" AspectMode="AspectFill" />

  • 確保在開始播放之前在你的平臺代碼中調用VideoViewRenderer.Init(),否則視圖將不會準備播放視頻。

    MediaManager在行動:Scott Hanselman應用!

    即使 Hanselman App 運行在MediaManager,要感謝 Erlend Angelsen! 利用媒體管理的實施,該應用程序現在改進了音頻播放,但更令人興奮的是,漢塞爾曼的影片從通道 9在應用程序是可用的!它也使用通知來控制當前媒體的播放。在將來,這將擴展到使用隊列和其他高級功能。要獲取這個應用的更多信息,可以從 James Montemagno‘s Github repository檢出代碼。

    結束語

    這里還有一些其它Xamarin MediaManager的樣例可用,包括:

    • MvvmCross
    • Xamarin.Forms
    • Simple


    開始,你首先要做的是 從NuGet下載插件 并將MediaManager安裝到每一個工程中。


    如果你想了解更多關于媒體播放,請務必跟隨我在Twitter上 @mhvdijk 接收更新。未來的計劃包括為Android Auto,Chromecast,CarPlay支持,輸出源,如藍牙、電視之間的無縫切換,或DLNA。如果你有想法,發現錯誤,或者想幫助開發,請確保從 GitHub下載源代碼。

    總結

    以上是生活随笔為你收集整理的Xamarin的播放音频和视频的媒体管理插件的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。