Как установить в качестве источника MediaPlayerElement файл на устройстве Android на платформе Uno?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как установить в качестве источника MediaPlayerElement файл на устройстве Android на платформе Uno?

Сообщение Anonymous »

Я пытаюсь на платформе Uno с помощью C# установить в качестве источника моего MediaPlayerElement файл, выбранный FileOpenPicker. Я успешно получил результирующий путь к выбранному файлу как объект StorageFile, но теперь мне нужно указать моему MediaPlayerElement воспроизвести файл в этом месте.
Это код, который я сейчас использую:

ПРИМЕЧАНИЕ: переменная в очереди[currentQueue].getTracks()[trackIndex] является StorageFile извлекается напрямую из средства выбора файлов — никакие преобразования в другие типы и т. д. не производятся.

Код: Выделить всё

    private async void PlayTrack(int queueIndex, int trackIndex)
{

MediaPlayer.MediaPlayer.Pause();

FileInfo fileInfo = new FileInfo(queues[currentQueue].getTracks()[trackIndex].Path);
bool exists = fileInfo.Exists;

// Show debugging dialog.
ContentDialog infoDialog = new ContentDialog();
infoDialog.Title = "Test";
infoDialog.CloseButtonText = "Ok";
infoDialog.DefaultButton = ContentDialogButton.None;
infoDialog.Content = "The file at '" + queues[currentQueue].getTracks()[trackIndex].Path + "' exists: " + exists;

infoDialog.XamlRoot = this.XamlRoot;
await infoDialog.ShowAsync();

// Create a MediaSource from the StorageFile.
string filePath = queues[queueIndex].getTracks()[trackIndex].Path;

filePath = filePath.TrimStart("content://".ToCharArray());
Uri fileUri = new Uri($"file://{filePath}");

MediaSource mediaSource = MediaSource.CreateFromUri(fileUri);

// Set the MediaSource to the MediaPlayer.
MediaPlayer.Source = mediaSource;

// Play the audio.
MediaPlayer.MediaPlayer.Play();
}
Однако при запуске диалоговое окно тестирования показывает, что моя переменная существует имеет значение false, что означает, что предполагаемый путь к файлу по какой-то причине неверен, и когда я пытаюсь установить его как моего источника MediaPlayerElement, он просто печатает в консоли отладки «Медиаплеер [MediaPlayer] ушел с необработанными событиями», при этом не отображается сообщение об ошибке и не происходит сбой приложения. После этого плеер совершенно не отвечает (кнопка воспроизведения/паузы ничего не делает и т. д.).
Интересная особенность заключается в том, что этот код работает по назначению и успешно воспроизводит файлы (и переменная существует имеет значение true, что означает, что путь к файлу правильный, но только при компиляции и запуске в Windows, при запуске на Android он не работает; .
Как исправить эту ошибку и заставить MediaPlayerElement воспроизводить правильный файл как на Android, так и на Windows?

Подробнее здесь: https://stackoverflow.com/questions/786 ... -device-in
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»