Как воспроизводить локальные mp3 файлы с помощью MediaElement - PullRequest
3 голосов
/ 13 декабря 2010

Я создаю простой медиаплеер с Silverlight 4 (C #). Сейчас я использую MediaElement, но он выдает ошибку

ошибка 4001: .... System.Collections.ListDictionaryInternal

Теперь эта ошибка возникает, когда я хочу установить источник MediaElement. Поэтому, когда пользователь нажимает «Play», он устанавливает источник первой песни.

Song s = afspeelijst.ElementAt(currentPlayingIndex);
media.Source = new System.Uri(s.FilePath);
media.Position = TimeSpan.Zero;
media.Play();

Следующий код тоже не работает, но он устраняет ошибку. Но до сих пор нет звука: s

media.SetSource(new FileStream(s.FilePath, FileMode.Open));

Ответы [ 3 ]

2 голосов
/ 15 декабря 2010

В Silverlight 4 вы можете получить доступ к локальным файлам в определенных пользовательских папках («Мои документы», «Моя музыка», «Мои рисунки» и «Мои видео») или в подпапках этих папок.(Вне браузера с включенными повышенными привилегиями).

Если изменить код, указанный выше, изменит его на что-то похожее ниже.

string path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "test/song.mp3");


            media.SetSource(new FileStream(path, FileMode.Open));
            media.Position = TimeSpan.Zero;
            media.Play();

Надеюсь, это поможет

1 голос
/ 06 июля 2011

Возможно, вы захотите проверить этот код. У меня все заработало:)

mediaElement1.LoadedBehavior = MediaState.Manual;
mediaElement1.Source = new Uri(@"D:/ExamplePath/myVideoFile.avi");
//@ means that the string behind is a path so / won't be 
//treated like a special character
mediaElement1.Play();
0 голосов
/ 26 августа 2011

Говорит

Работа с файлом не разрешена. Доступ к пути "" запрещен.

При попытке добраться до папки «Документы» или другого локального файла. Я использую Silverlight 4 и могу воспроизводить некоторые http-файлы в сети. Но не могу воспроизвести файл ftp, например ftp: // user: pass@address/myVoicefile.snd, когда я смотрю на данную ошибку

Метод проверки .Net возвращает не поддерживаемый путь.

Таким образом, используя внутреннюю HTML-страницу в приложении Silverlight. или если ваши звуковые файлы ограничены, копирование этих файлов в / ClientBin в вашем веб-приложении является альтернативой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...