Почему SetSource не может изменить значение Source?
Спасибо за ваше время сообщить об этом, проблема в том, что если вы вызываете метод SetSource
для установки источника мультимедиа с Локальный файл открытый поток, поэтому свойство Source
не будет содержать значения, и оно задуманно.
Могу ли я использовать player.Source = "D: //xxx.mp3"; ?
Source
имеет тип Uri, поддерживает http и UWP локальную схему Uri , если файл хранится на диске D, вы не можете установить player.Source = "D://xxx.mp3
( схема файла). Если вы хотите установить источник со значением URI, я предлагаю скопировать файл в локальную папку приложения, а затем использовать схему URI локального файла UWP. Но это приведет к увеличению локального хранилища приложения.
private async void Button_Tapped(object sender, TappedRoutedEventArgs e)
{
var openPicker = new Windows.Storage.Pickers.FileOpenPicker();
openPicker.FileTypeFilter.Add(".wmv");
openPicker.FileTypeFilter.Add(".mp4");
openPicker.FileTypeFilter.Add(".wma");
openPicker.FileTypeFilter.Add(".mp3");
var file = await openPicker.PickSingleFileAsync();
if (file != null)
{
await file.CopyAsync(ApplicationData.Current.LocalFolder, file.Name, NameCollisionOption.ReplaceExisting);
var path = ApplicationData.Current.LocalFolder.Path;
var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
Debug.WriteLine(player.Source);
player.Source = new Uri($"ms-appdata:///local/{file.Name}");
Debug.WriteLine(player.Source);//The output of these tow Debug are same
}
player.Play();
}