2010-12-13 15 views
3

私はSilverlight 4(C#)でシンプルなメディアプレーヤーを作成しています。今、私はのMediaElementを使用していますが、それは私にエラーを与えるMediaElementでローカルmp3ファイルを再生する方法

エラー4001:.... System.Collections.ListDictionaryInternal

私はのソースを設定したいときに今、このエラーが発生MediaElement。ユーザーが「再生」を押すと、最初の曲のソースが設定されます。

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

次のコードは機能しませんが、エラーは削除されます。しかし、それでもまだ音無し:Silverlightの4中のS

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

s.FilePathはどこにポイントしていますか? SLは、アプリケーションがローカルファイルシステム(独立したストレージを除く)にアクセスすることを許可しません。ファイルはアプリケーションパッケージの一部ですか? – AlexEzh

+0

パスはありません(例:c:\ music \ song.mp3)。これはfile:/// c:\ music \ song.mp3に変換されます。アプリケーションをインストールする必要があるため、ローカルファイルシステムにアクセスできます。 –

答えて

1

に役立ちます願っています。それは私のためにうまく働いた:)

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(); 
2

あなたはこれらの内の特定のユーザーのフォルダ(マイドキュメント、マイミュージック、マイピクチャとマイビデオ)またはサブフォルダ内のローカルファイルにアクセスすることができます。 (昇格された特権を有効にしてブラウザから外した)。

上記のコードを変更すると、以下のように変更されます。

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(); 

私は、これはあなたがこのコードをチェックアウトする場合があります

+0

私はそれを試みた、うまくいきませんでした。あなたがSetSource()を呼び出すと、ファイルをダウンロードすることが分かりました。したがって、ダウンロードデリゲートで100%に達したとき、私はPlay()を押して、それが動作します。私はローカルではなくHTTPで私のソリューションをテストしました。 –

+0

あなたはどのオペレーティングシステムを使用していますか? Windows 7はこれとは違った扱いをしています。ライブラリ/ドキュメントはC:\ Users \ Account_name \ Documents ...と混同されるかもしれません。私は自分のマシンで試してみました。ローカルファイルシステム上で動作するようになるかもしれません。 – scartag

0

ファイルの操作が許可されていないと言います。パス ''へのアクセスは拒否されました。

ドキュメントフォルダや別のファイルにアクセスしようとすると、私はSilverlight 4を使用しており、ネット上でいくつかのhttpファイルを再生できます。しかし、ftp://user:[email protected]/myVoicefile.sndのようなftpファイルを再生できません。特定のエラーを見たとき

.Netの検証方法は返されません。

したがって、Silverlightアプリで内部HTMLページを使用します。サウンドファイルが制限されている場合は、Webアプリケーションの/ ClientBinでこれらのファイルをコピーすることもできます。

関連する問題