Acly.Player
1.2.5
dotnet add package Acly.Player --version 1.2.5
NuGet\Install-Package Acly.Player -Version 1.2.5
<PackageReference Include="Acly.Player" Version="1.2.5" />
paket add Acly.Player --version 1.2.5
#r "nuget: Acly.Player, 1.2.5"
// 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 с возможностью удалённого управления
Чтобы получить экзепляр плеера необходимо написать следующее:
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 | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0-android34.0 is compatible. net8.0-windows10.0.19041 is compatible. |
-
net8.0-android34.0
- Acly (>= 1.2.0)
- Microsoft.Maui.Controls (>= 8.0.7)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.7)
- Xamarin.AndroidX.Fragment.Ktx (>= 1.7.0.2)
- Xamarin.AndroidX.Media (>= 1.7.0.4)
- Xamarin.AndroidX.Media2.Session (>= 1.3.0.4)
-
net8.0-windows10.0.19041
- Acly (>= 1.2.0)
- Microsoft.Maui.Controls (>= 8.0.7)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.