IT之家 11 月 14 日消息,根據消息源 @Leopeva 爆料,微軟 Canary 頻道 Edge 瀏覽器最新預覽版中,引入了全新的實驗性 Flag,可以像 Chrome 瀏覽器一樣,優化 PWA 應用的多媒體控件。
在 Canary 頻道 Edge 瀏覽器最新 121.0.2220.0 版本中,新增了名為“Web App System Media Controls on Windows”的實驗性 Flag,只是目前尚未生效。
目前在 Edge 瀏覽器中,用戶播放網頁應用音頻,其音量控件會與其他 Web 應用程序和瀏覽器本身的音量控件混合在一起,尤其是當多個 Web 應用程序同時播放音頻,可能會使管理音頻播放變得具有挑戰性。
工程師在不久前分享的官方文章中表示:“通過引入對 SystemMediaControls 的支持,為每個播放音頻的 dPWA 實例化,幫助彌合 Web 應用程序和本機應用程序之間的差距”。
IT之家注:如果這項實驗性 Flag 能夠生效,每個播放音頻的 Web 應用程序都可以擁有自己單獨的控件,這意味著您將能夠獨立查看和控制每個 PWA 的媒體播放,而無需在選項卡或窗口之間切換。
IT之家訊 Win10開發者預覽版為我們提供了一個Win10大框架的早期概覽,使開發者與熱心用戶都可以提前感受Win10帶來的新特性,嘗試新工具,而作為開發者,最關心的莫過于Windows多平臺通用應用方面問題,而Win10也提供了相關解決方案,作為開發者的你可立刻在Win10預覽版中進行一系列的測試與體驗。
在Win10預覽版中安裝工具與SDK后,即可著手創建Windows通用應用或先瀏覽目前的環境與此前相比都發生了什么變化。
應用建模
文件資源管理器:
全新的 Windows.System.Launcher.LaunchFolderAsync 方法使你運行文件資源管理器并且顯示你所指定的內容。
共享儲存:
全新的Windows.ApplicationModel.DataTransfer.SharedStorageAccessManager 類的方法使你可以在通過URI激活運行另一款應用的時候通過傳送共享token來共享文件至另一款應用。
設置:
使用ms-settings協議以及LaunchUriAsync機制來顯示系統設置頁面,以下為Wi-Fi設置頁面的代碼例:
bool result=await Launcher.LaunchUriAsync(new Uri("ms-settings://network/wifi"));
控制
Webview更新:
以下幾項新APIs以及事件已支持HTML WebViw控制,包括:
? MediaType property for the MSWebViewUnviewableContentIdentified 事件
? MSWebViewUnsupportedUriSchemeIdentified 事件
? MSWebViewNewWindowRequested 事件
? MSWebViewPermissionRequested 事件
用于用戶輸入的客戶端數據驗證:
全新XAML 控件屬性允許你收集并且展示數據驗證錯誤。你可以添加、刪除、或者全部清除控件中所有的驗證錯誤。當驗證錯誤總數大于零時,驗證狀態屬性(只讀)將會改變并且控件會顯示一個驗證錯誤的標志指示。
標志指示樣式可用默認,或通過覆寫ValidationIndicatorStyle項來自定義樣式。另外你也可以通過設置IsValidationIndicatorEnabled項來選擇是否開啟標志指示。
Windows核心字符APIs:
全新Windows.UI.Text.Core命名空間給予客戶-服務端系統集中通過單一服務器處理鍵盤輸入的特性。
輸入更新:
現在,在C++/C#,WinRT應用中使用robust inking功能更加輕松。但使用JavaScript的Windows應用依然對此不支持。
Maps:
Map控制已經更新支持Win10技術預覽版的通用應用,APIs已經屬于通用設備群家族一員。
設備
定位:
Win10技術預覽版使用全新的請求機制來引導用戶授權定位——RequestAccessAsync。
應用獲取定位有三個前提:
1、定位開啟
2、用戶允許Windows與應用使用定位和定位歷史
3、用戶設置允許你的應用使用定位
應用必須在前臺并且在UI下call RequestAccessAsync,除非用戶點確認,否則你應用沒法開啟定位。
AllJoyn(P2P點對點):
WinRT命名規則Windows.Devices.AllJoyn可以實現該功能,此類APIs可以使UWDP(universal Windows device app)與其它設備進行點對點聯動、IoT實例等。
電池:
電池APIs處在Windows.Devices.Power命名空間中,允許你的應用請求更多關于電池的信息。
MIDI設備:
全新Windows.Devices.Midi命名空間可以允許你創建:
1、可以與外部MIDI設備通訊的應用
2、應用或外部程序可以直接與微軟GS MIDI軟件頻率合成器交流
3、多客戶端同時訪問單個MIDI接口實例
定制傳感器支持:
Windows.Devices.Sensors.Custom命名空間允許硬件開發者來定義新傳感器種類,例如二氧化碳感應器。
顯示與游戲
DirectX:
Win10技術預覽版中的DirectX12為微軟D3D的下一版本,DX12將在提升底層及console-like API運行效率及性能。DX12將會帶來變革。(IT之家與眾位一樣期待DX12的真正表現)
媒體
HTTP串流直播:
你現在可以使用AdaptiveMediaSource 類來使你的應用擁有視頻串流適配功能。對象是由它指向流式清單文件進行初始化,清單格式包括Http Live Streaming (HLS), Dynamic Adaptive Streaming over HTTP (DASH),以及Smooth Streaming。當對象與XAML媒體元素綁定后,適配回放便會開始。
Media Foundation Transcode Video Processor (XVP)對Media Foundation Transforms (MFTs)的支持:
使用Media Foundation Transforms (MFTs) 的Windows應用現在可以使用Media Foundation Transcode Video Processor (XVP)來進行轉換,縮放和轉換原始視頻數據。
轉碼:
全新MediaProcessingTrigger API允許你的應用進行后臺媒體轉碼功能,使轉碼操作可以在后臺運行,即使前臺進程被結束。
媒體元素(MediaElement):
在Win10中,MediaElement將會播放包含多重流來源內容,即使其中一流發生解碼錯誤,只要媒體包含起碼一個有效流,視頻即可正常播放。舉例說明,視頻流中含有視頻與音頻流錯誤,那么MediaElement依然會繼續播放音頻流。
PartialMediaFailureDetected將通知你哪出來源無法被解碼,同時讓你了解何種流失敗并且直接在UI中體現。如果全部流解碼失敗,MediaFailed事件則會發生。
桌面應用的媒體傳輸控制:
ISystemMediaTransportControls interface以及APIs允許桌面應用與系統內建媒體傳輸控制聯動,包括對按鈕的響應,更新傳輸顯示控制以及展現當前媒體內容的元資料。
隨機訪問JPEG編碼與解碼:
全新WIC機制 IWICJpegFrameEncode與IWICJpegFrameDecode開啟JPEG圖片的編/解碼功能。現在同樣可以開啟圖像數據索引,可提供對大圖像的高效隨機訪問,同時占用更多內存。
用于媒體構成的疊加(Overlays for media compositions):
全新MediaOverlay與MediaOverlayLayer APIs可以讓我們為媒體構成添加多圖層靜態或動態媒體內容更加輕松,不透明度、位置與時間均可針對某一圖層進行調整,同時我們甚至可以為圖層添加自定義復合器。
新的特效框架:
Windows.Media.Effects namespace提供了簡單又直觀的框架結構以為音視頻流添加特效。該框架提供基本接口,你可以通過它來為音視頻植入定制特效并且將其插入媒體管線中。
網絡
Sockets:
Sockets更新包括以下兩點。
1、Socket broker,可以為應用設立socket鏈接,無論該應用處在何種生命周期內。該功能使應用以及該應用相關服務更加容易被發現。
2、Throughput improvements,已針對使用Windows.Networking.Sockets namespace.的應用進行了優化。
后處理任務后臺傳輸(Background Transfer post-processing tasks):
Windows.Networking.BackgroundTransfer namespace中的全新APIs可以使你注冊后處理任務組,使你的應用可以在后臺傳輸成功或失敗的時候立刻采取行動,而不是等用戶再次開啟該應用,該功能即使應用沒在前臺運行也無妨。
藍牙廣告支持:
Windows.Devices.Bluetooth.Advertisement namespace可以使你的應用發送或接受以及過濾藍牙LE連接廣告。
Wi-Fi直連API更新:
設備代理已經升級,可實現與其它設備配對而不需要離開應用。Windows.Devices.WiFiDirect namespace還可以允許設備被其它設備發現,并且能等待即將到來的連接通知。(IT之家得知,目前該功能還尚未完整,微軟提到此項會有所限制)
JSON支持改進:
Windows.Data.Json namespace現在對已有定義標準支持更加完善,開發者在debug階段的JSON對象轉換體驗更加完善。
安全
ECC加密:
Windows.Security.Cryptography namespace中的全新APIs提供對ECC的支持。
系統服務
電源:
Windows桌面應用現在可以在節電模式開始與關閉時進行提醒。通過改變節能模式,應用也可以在續航方面做出一定貢獻。
GUID_POWER_SAVING_STATUS:此全新GUID與PowerSettingRegisterNotification即可實現通知功能。
SYSTEM_POWER_STATUS:架構已升級,現支持節電模式。第四項SystemStatusFlag (此前為Reserved1),現在可以指示節電模式是否開啟。使用GetSystemPowerStatus來獲取框架指示。
版本:
你現在可以用Version Helper functions來確定相關系統版本。IsWindows10OrGreater是Win10新功能。你在獲取系統版本時應該用helper功能,而不是GetVersionEx與GetVersion。
記住一點,如果你打算使用 GetVersionEx或GetVersion來在OSVERSIONINFOEX或OSVERSIONINFO架構中獲取版本號,那么只能獲取從Win8.1/Windows Server 2012 R2的6.3至Win10技術預覽版,另外你還需要專門指定Win8.1或Win10來獲取正確版本號。
儲存
Windows Phone文件搜索APIs:
作為一名開發者,你可以設置你的應用來與你發布的其它應用共享文件夾,通過新增擴展至應用標識中,然后使用Windows.Storage.ApplicationData.GetPublisherCacheFolder機制來獲取共享文件夾位置。
WinRT應用的高安全模塊基本不會允許應用之間共享資料,不過依然可以在同一發布者的應用之間進行共享,以個別使用者為基礎。
工具以及性能
屬性變更通知:
Windows.UI.Xaml namespace現在包含一系列APIs支持控制屬性變更通知,作為DependencyObject。
跟蹤日志記錄:
TraceLogging,為用戶模式應用以及內核模式的驅動程序提供的全新事件追蹤API,基于事件 Tracing for Windows (ETW)之上。該API不需要從manifest XML文件請求額外的instrumentation,即可instrument code以及去涵蓋結構化數據。
WinRT, .NET和C/C++ TraceLogging APIs已準備就緒,不同開發者可以按需自取。
用戶體驗
滾動列表虛擬化:
XAML ListView與GridView控件現在有了新的ListViewBase.ChooseItemContainer 事件,在數據收集發生變化時提高控制性能。
不同應用之間拖拽功能:
全新Windows.ApplicationModel.DataTransfer.DragDrop namespaces為WinRT應用帶來了拖拽功能,目前拖拽功能(例如拖拽上傳Email附件)無法在WinRT應用中實現,你的應用可以通過這些新APIs輕松在WinRT應用以及桌面之間移動數據。
鍵盤導航支持鍵盤加速:
Windows.UI.Xaml.KeyAccelerator 類使你可以在頁面設置XAML標記鍵盤加速,通過一個按鍵即可調用一個指定事件句柄。另外,你也可以用x:Uid特性與KeyAccelerator來定位。
Web
Internet Explorer:
Edge mode,全新Living文件模式可大幅提高與其它瀏覽器以及當代網頁內容的交互性。該試驗模式將隨機向一些Windows開發者預覽版用戶推送,你也可以通過about:flags來手動開啟Edge模式。