Acly.Player 1.2.5

dotnet add package Acly.Player --version 1.2.5                
NuGet\Install-Package Acly.Player -Version 1.2.5                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Acly.Player" Version="1.2.5" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Acly.Player --version 1.2.5                
#r "nuget: Acly.Player, 1.2.5"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Acly.Player as a Cake Addin
#addin nuget:?package=Acly.Player&version=1.2.5

// Install Acly.Player as a Cake Tool
#tool nuget:?package=Acly.Player&version=1.2.5                

Acly.Player

Плеер для Android и Windows с возможностью удалённого управления

Windows Android

Чтобы получить экзепляр плеера необходимо написать следующее:

CrossPlayer player = new CrossPlayer();
IPlayer player = new CrossPlayer(); //альтернативный вариант

Настройка для Android

Для того чтобы управлять плеером через уведомление надо сначала инициализировать MediaSessionService и MediaBrowserService. Звучит сложно, но для этого надо всего лишь вызвать 1 метод:

CrossPlayer.InitNotification(MauiAppCompatActivity);

Лучше всего его вызывать в методе OnCreate(Bundle?) класса MainActivity (или любого другого унаследнованного от MauiAppCompatActivity) Для примера:

public class MainActivity : MauiAppCompatActivity
{
    protected override void OnCreate(Bundle? savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        CrossPlayer.InitNotification(this);
    }
}

Так же этот метот имеет перегрузку, с помощью которой можно настроить уведомление под себя.

CrossPlayer.InitNotification(MauiAppCompatActivity, PlayerNotificationStyle, PlayerNotificationSettings);

В PlayerNotificationStyle передаются настройки внешнего вида уведомления - иконки и надписи, а в PlayerNotificationSettings общие настройки. В общих настройках указываются параметры канала, создаваемого для уведомления, идентификатор уведомления и тег сессии.

Настройка для Windows

Настройка для Windows не требуется

Использование

Плеер предлагает следующие события:

event Action<SimplePlayerState>? StateChanged; // Вызывается при изменении состояния плеера
event Action? SourceChanged; // Вызывается при изменении источника
event Action? SourceEnded; // Вызывается при окончании источника
event Action<TimeSpan>? PositionChanged; // Вызывается при изменении текущего времени проигрывания
event Action? SkippedToNext; // Вызывается при пропуске до следующей песни
event Action? SkippedToPrevious; // Вызывается при перемотки до предыдущей песни
event IPlayer.DisposePlayer? Disposed; // Вызывается при очистке

Поля:

TimeSpan Position { get; set; } // Текущее время проигрывания
TimeSpan Duration { get; } // Продолжительность аудио
float Speed { get; set; } // Скорость проигрывания
float Volume { get; set; } // Громкость плеера
bool Loop { get; set; } // Повторение аудио
bool IsPlaying { get; } // Проигрывается ли сейчас аудио
bool SourceSetted { get; } // Установлено ли аудио
bool AutoPlay { get; set; } // Автоматически проигрывать после смены аудио
SimplePlayerState State { get; } // Состояние плеера
IMediaItem Source { get; } // Информация о текущем аудио

Управление плеером:

void Pause(); // Пауза
void Play(); // Воспроизвести
void Stop(); // Остановить
void SwitchState(); // Пауза / воспроизести

void Release(); // Очистить

Установка аудио

Для установки аудио доступны следующие методы:

Task SetSource(byte[] Data);
Task SetSource(Stream SourceStream);
Task SetSource(string SourceUrl);
Task SetSource(IMediaItem Item);

Последний метод устанавливает источник аудио и данные о медиа, которые будут отображаться при удалённом управлении плеером:

public interface IMediaItem
{
    public string Title { get; set; }
    public string Artist { get; set; }
    public TimeSpan Duration { get; set; }
    public string AudioUrl { get; set; }
    public string? ImageUrl { get; set; }
}
Product Compatible and additional computed target framework versions.
.NET net8.0-android34.0 is compatible.  net8.0-windows10.0.19041 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.5 112 6/21/2024
1.2.4 102 6/20/2024
1.2.3 93 6/20/2024
1.2.2 80 6/20/2024
1.2.1 94 6/20/2024
1.2.0 107 6/20/2024
1.1.1 92 6/19/2024
1.1.0 104 6/19/2024
1.0.0 94 6/18/2024