Acly.Player
1.3.51
dotnet add package Acly.Player --version 1.3.51
NuGet\Install-Package Acly.Player -Version 1.3.51
<PackageReference Include="Acly.Player" Version="1.3.51" />
<PackageVersion Include="Acly.Player" Version="1.3.51" />
<PackageReference Include="Acly.Player" />
paket add Acly.Player --version 1.3.51
#r "nuget: Acly.Player, 1.3.51"
#addin nuget:?package=Acly.Player&version=1.3.51
#tool nuget:?package=Acly.Player&version=1.3.51
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
общие настройки.
В общих настройках указываются параметры канала, создаваемого для уведомления, идентификатор уведомления и тег сессии.
Для работы методов GetSpectrumData
и GetWaveformData
на Android необходимо дать некоторые разрешения.
Если вам эти методы не нужны, то можно не запрашивать разрешения.
В любом случае, если вы попытаетесь вызвать эти методы, не дав разрешения, то они просто вернут пустой массив.
Также при неудачной инициализации визуализатора на Android в консоли будет выведено сообщение с информацией - это сообщение можно проигнорировать, если вам не нужна визуализация.
Для работы этих методов необходимо указать следующие разрешения:
android.permission.RECORD_AUDIO
android.permission.MODIFY_AUDIO_SETTINGS
Настройка для Windows
Настройка для Windows не требуется
Использование
Плеер предлагает следующие события:
event SimplePlayerStateEvent? StateChanged; // Вызывается при изменении состояния плеера
event SimplePlayerEvent? SourceChanged; // Вызывается при изменении источника
event SimplePlayerEvent? SourceEnded; // Вызывается при окончании источника
event PlayerTimeEvent? PositionChanged; // Вызывается при изменении текущего времени проигрывания
event PlayerEvent? SkippedToNext; // Вызывается при пропуске до следующей песни
event PlayerEvent? 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 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. net9.0-android was computed. net9.0-windows was computed. |
-
net8.0-android34.0
- Acly (>= 1.8.10)
- Microsoft.Maui.Controls (>= 8.0.100)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.100)
- 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.8.10)
- Microsoft.Maui.Controls (>= 8.0.100)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.100)
- NAudio (>= 2.2.1)
- NAudio.Wasapi (>= 2.2.1)
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.3.51 | 386 | 3/24/2025 |
1.3.5 | 381 | 3/24/2025 |
1.3.4 | 244 | 3/23/2025 |
1.3.3 | 126 | 3/20/2025 |
1.3.2 | 124 | 3/20/2025 |
1.3.1 | 125 | 3/20/2025 |
1.3.0 | 127 | 3/20/2025 |
1.2.5 | 160 | 6/21/2024 |
1.2.4 | 115 | 6/20/2024 |
1.2.3 | 108 | 6/20/2024 |
1.2.2 | 97 | 6/20/2024 |
1.2.1 | 107 | 6/20/2024 |
1.2.0 | 120 | 6/20/2024 |
1.1.1 | 110 | 6/19/2024 |
1.1.0 | 120 | 6/19/2024 |
1.0.0 | 108 | 6/18/2024 |