Posted on 28. April 2024

Представляємо вам .NET MAUI Community Tookit v8: з'явилася підтримка TouchBehavior!

Представляємо вам .NET MAUI Community Tookit v8: з’явилася підтримка TouchBehavior!


Команда .NET MAUI Community Toolkit з гордістю представляє вам 8 версію інструментарію .NET MAUI Community Toolkit!


У цьому останньому великому випуску ми представили довгоочікувану TouchBehavior (раніше відому як TouchEffect). Але також, остерігайтеся змін у Snackbar у Windows, і чи знаєте ви, що ви можете розфарбувати навігаційну панель Android?


TouchBehavior

Якщо ви використовували Xamarin Community Toolkit у вашому додатку Xamarin.Forms, ви, ймовірно, знаєте про TouchEffect. Починаючи з .NET MAUI, ефекти були застарілими і їх слід перенести до (Platform)Behaviors. Це саме те, що ми зробили для цієї функціональності, реалізувавши її для .NET MAUI.


TouchBehavior надає можливість взаємодіяти з будь-яким візуальним елементом у вашому додатку на основі дотиків, кліків миші та наведення. Реалізація TouchBehavior дозволяє налаштовувати багато різних візуальних властивостей VisualElement, до якого він приєднаний, таких як колір фону, непрозорість, обертання і масштаб, а також багато інших властивостей. Крім того, TouchBehavior дозволяє реалізувати жести довгого натискання і викликати код, коли користувач довго натискає на будь-який візуальний елемент у вашому додатку.

 

 

Величезне спасибі Олександру, також відомому як Axemasta, члену спільноти, який тісно співпрацював з нами над цим проектом. Він проробив дивовижну роботу, щоб реалізувати цю величезну функцію, на яку багато людей чекали. Величезне йому спасибі!


Функція не є повною без документації, тому ми також підготували її для вас. Зверніть увагу, що є деякі зміни порівняно з TouchEffect для Xamarin, тому ми додали розділ, який допоможе вам з міграцією.


(Breaking) зміни в Behaviors

Під час роботи над TouchBehavior ми виявили, що контекст прив’язки застосовувався неправильно. Хороша новина полягає в тому, що ми знайшли причину цього, погана новина полягає в тому, що це стосувалося не тільки TouchBehavior, але й усіх інших поведінок у Toolkit.


На щастя, Брендон швидко знайшов першопричину і надав виправлення, яке ми невдовзі випустили.


Технічно, це зміна, яка порушує семантичну схему версій, але ми вирішили, що це не вплине на велику кількість людей. Якщо ми помилилися, приносимо свої вибачення і просимо зв’язатися з нами, щоб ми могли допомогти вам розібратися. Будь ласка, зробіть це, відкривши питання у сховищі з усіма необхідними деталями.


Breaking зміни для Snackbar у Windows

Нова велика версія зазвичай означає нові цікаві можливості, але також і докорінні зміни. У цьому випадку є кілька докорінних змін для використання Snackbar у Windows.


Власне, Владислав повністю переписав реалізацію Snackbar у Windows. Цими змінами ми замінили те, що використовується під капотом для реалізації Snackbar і Toast у Windows. В результаті ми виправили деякі збої, але, що більш важливо, ваш додаток для Windows більше не запускатиме інший екземпляр при взаємодії з Toast або Snackbar.


Обов’язково ознайомтеся з документацією до Snackbar, щоб дізнатися, як це може вплинути на ваш проект. Або, якщо ви дійсно хочете зануритися в деталі, подивіться запит на витягування цієї зміни.


Колір навігаційної панелі Android

Перш ніж ми перейдемо до цієї нової функції, давайте спочатку прояснимо, про що саме ми говоримо. Термін «панель навігації», здається, викликає деяку плутанину. Зазвичай, коли люди думають про панель навігації, вони мають на увазі панель у верхній частині сторінки з заголовком і, можливо, деякими елементами панелі інструментів. Однак, в контексті Android існує також системна панель навігації. Це та, що має 3 кнопки для повернення на попередню сторінку, відкриття багатозадачного режиму і переходу на головний екран вашого пристрою. Саме про цю навігаційну панель ми зараз говоримо!


Маючи це на увазі, давайте поговоримо про саму функцію. Тепер ви можете розфарбувати цю панель на Android так, щоб ваш додаток виглядав ще більш захоплююче, а ваша тема повністю інтегрувалася з усім, що ви бачите на екрані.



Ви також можете керувати тим, чи показуватиме панель навігації світлий або темний вміст, тобто чи будуть іконки світлого або темного кольору. Це дає змогу переконатися, що панель навігації завжди відповідає стилю вашого додатка.


Як почати роботу і все, що вам потрібно знати про цю функцію, можна знайти в документації.


Багато виправлень та оптимізацій

Звичайно, у цьому випуску було виконано багато іншої роботи, не забудьте переглянути повний список у примітках до випуску з усіма виправленнями та іншими оптимізаціями, які було зроблено у цьому випуску.


Велике спасибі всім, хто зробив цей випуск можливим, особливо всім учасникам спільноти, які так люб’язно витратили свій дорогоцінний час на наш проект і внесли свій вклад в екосистему .NET MAUI.

Що далі?

Ми раді представити вам останню велику версію .NET MAUI Community Toolkit, але, звичайно, ми не зупиняємося на досягнутому. Над наступною важливою функцією вже ведеться робота – CameraView, яка зараз переноситься з Xamarin на .NET MAUI. Хоча це частина сімейства Toolkit, він буде випущений окремим пакетом, тому слідкуйте за його появою. Крім того, ми працюємо над покращенням MediaElement, щоб забезпечити глибшу інтеграцію з операційною системою, наприклад, відтворення медіа з екрану блокування та відображення відповідних метаданих, і, звісно, багато іншого.


Повідомте нам, що ви думаєте про цей останній випуск, зв’яжіться з нами через GitHub repository, приєднайтеся до нашого Discord server і приходьте на наші прямі трансляції, які відбуваються кожного першого четверга місяця на  .NET Foundation YouTube channel  о 12:00 за тихоокеанським часом.

 

Ви можете отримати все це добро вже сьогодні! Отже, не забудьте оновити свій пакет .NET MAUI Community Toolkit до версії 8 сьогодні і починайте кодувати!



Posted on 5. February 2023

Відтворення аудіо та відео в додатках .NET MAUI за допомогою нового MediaElement

Відтворення аудіо та відео в додатках .NET MAUI за допомогою нового MediaElement

 

Вийшов один з найбільш очікуваних елементів управління для .NET MAUI – MediaElement. За допомогою MediaElement ви можете легко відтворювати аудіо та відео з вашого додатку .NET MAUI. В цій статті ви дізнаєтеся все, що вам потрібно знати про цю першу версію і про плани на майбутнє! Media Element є частиною .NET MAUI Community Toolkit, бібліотеки, створеної спільнотою, яка підтримується чудовими розробниками з усього світу, як з боку спільноти, так і з боку корпорації Майкрософт.

 

Що таке MediaElement?

З MediaElement ви отримуєте потужний елемент керування, який дозволяє відтворювати мультимедійні дані у вашому додатку .NET MAUI.


Можливо, ви вже знайомі з MediaElement з інструментарію спільноти Xamarin, куди його додали завдяки чудовій роботі учасника спільноти Пітера Фута. Хоча та версія була вже досить непоганою, вона також мала місце для вдосконалення, особливо на Android.


Саме тому, при перенесенні MediaElement на .NET MAUI, ми перебудували все з нуля. Таким чином, ми змогли зберегти всі ті частини, які вже є хорошими, і в той же час покращити ті речі, які потребують доопрацювання.

 

Під капотом

Для Android ми вирішили використовувати ExoPlayer як аналог платформи, замінивши Android MediaPlayer, який ми використовували для Xamarin. Таким чином, ми автоматично отримуємо багато додаткових функцій, які доступні нам з коробки, наприклад, відтворення HTTP-відео в прямому ефірі (HLS), чудові елементи керування транспортуванням платформи та багато іншого.


На iOS та macOS ми використовуємо платформу AVPlayer, як і для MediaElement в Xamarin. Також без змін залишився Tizen-плеєр, який використовує Tizen.Multimedia.Player.


Тепер, коли .NET MAUI будується на основі WinUI, а не UWP, ми використовуємо новий елемент MediaPlayerElement WinUI. Хоча цей елемент керування також є дуже молодим для WinUI, він вже є дуже повним і виглядає багатообіцяючим.

Підтримка різних медіаформатів відрізняється на різних платформах (і, можливо, залежно від того, які кодеки ви встановили), але, використовуючи нативні медіаплеєри платформи, для кожної операційної системи ми використовуємо всю потужність і пов’язану з цим оптимізовану продуктивність.

 

Початок роботи

Почати роботу з MediaElement дуже просто. По-перше, вам потрібно встановити пакет CommunityToolkit.Maui.MediaElement NuGet. Це окремий пакунок від основного пакунка Community Toolkit.


Після завершення встановлення перейдіть до вашого MauiProgram.cs і додайте наступний рядок ініціалізації до MauiAppBuilder:


public static MauiApp CreateMauiApp()

{

    var builder = MauiApp.CreateBuilder();

    builder

        .UseMauiApp<App>()

        // Initialize the .NET MAUI Community Toolkit MediaElement by adding the below line of code

        .UseMauiCommunityToolkitMediaElement()

        // After initializing the .NET MAUI Community Toolkit, optionally add additional fonts, and other things

        .ConfigureFonts(fonts =>

        {

            fonts.AddFont(“OpenSans-Regular.ttf”, “OpenSansRegular”);

            fonts.AddFont(“OpenSans-Semibold.ttf”, “OpenSansSemibold”);

        });


    // Continue initializing your .NET MAUI App here


    return builder.Build();

 

}


Тепер ви готові почати використовувати MediaElement у своєму додатку! Простий приклад у XAML можна знайти нижче.

 

xmlns=“http://schemas.microsoft.com/dotnet/2021/maui”

             xmlns:x=“http://schemas.microsoft.com/winfx/2009/xaml”

             xmlns:toolkit=“http://schemas.microsoft.com/dotnet/2022/maui/toolkit”

             x:Class=“MediaElementDemos.GettingStarted”

             Title=“MediaElement Getting Started”>


     x:Name=“mediaElement”

                      ShouldAutoPlay=“True”

                      ShouldShowPlaybackControls=“True”

                      Source=“https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4”

                      HeightRequest=“300”

                      WidthRequest=“400”

                      … />

 

Це додасть елемент управління MediaElement на сторінку, яка почне автоматично відтворюватися при завантаженні відео, результат запуску на iOS і Windows можна побачити нижче.



У цій статті автор не вдається в подробиці про багаті функції, які вже є в цій першій версії, але важливо зазначити одну річ. Ви, як розробник, несете відповідальність за використання ресурсів MediaElement. Наприклад, додаток може відтворювати відео в режимі “картинка в картинці” або відтворювати аудіо у фоновому режимі, і в цих сценаріях неможливо автоматично визначити, коли потрібно очистити ресурси MediaElement.

Для цього потрібен лише один рядок коду. У фрагменті коду нижче ви можете побачити, як звільняються ресурси, коли користувач переходить зі сторінки ContentPage, на якій відображається елемент управління MediaElement.


public partial class FreeResourcesPage : ContentPage

{

    void ContentPage_Unloaded(object? sender, EventArgs e)

    {

        // Stop and cleanup MediaElement when we navigate away

        mediaElement.Handler?.DisconnectHandler();

    }


}

 

Щоб дізнатися більше про всі поточні функції MediaElement, відвідайте сторінку документації.

 

Source




Posted on 9. February 2017

Анонс проекта Rome для Android

Ранее уже писал о проекте Rome, который позволяет улучшить взаимодействие пользователей с одним приложением на разных устройствах платформы Windows.

Первая версия проекта Rome для удаленного запуска приложений и удаленных сервисов приложения появилась в Windows 10 Anniversary Update.

Project Rome для Android 

 

Project Rome for Android

 

Сегодня компания Microsoft анонсировала выход Android версии проекта Rome. Эта версия SDK работает с Java и Xamarin.

Примеры приложений можно скачать с GitHub‘а данного решения. Видео с демонстрацией работы проекта Rome на устройстве с Android:

 

Скачать пример на Java

Скачать пример на Xamarin