0

Windows メディア要素を使用して音楽を再生するアプリケーションがあります。音楽を再生するコードは次のとおりです。

   public void PlaySound()
    {

        string solutionPath = Directory.GetParent(Assembly.GetExecutingAssembly().Location).Parent.Parent.Parent.FullName;
        string path = Path.Combine(solutionPath, "FolderNameWithinSolution", myMusic.wav);
        mediaElement.LoadedBehavior = MediaState.Manual;
        mediaElement.Stop();
        mediaElement.Source = new Uri(path, UriKind.RelativeOrAbsolute);
        mediaElement.Volume = 0.2;
        mediaElement.Play(); 


    }

myMusic.wav は、FolderNameWithinSolution に保持されているファイルです。これは Content & copy Always として設定されています。展開するまではすべて正常に機能し、アプリは音楽を再生しません。

アプリケーション ファイルを確認したところ、フォルダー内に音楽が表示されていますが、音楽は myMusic.wav.deploy として表示されています。

誰かが私がこれを間違って設定した場所を手伝ってもらえますか. また、アプリケーション ファイル内のファイルの名前を変更して .deploy を削除しようとしましたが、それでも機能しませんでした。

4

1 に答える 1

0

.Parent.Parent.Parent.FullNameproject\bin\debugプログラムがディレクトリから実行されている場合、おそらく .SLN ファイルと同じ場所にある .WAV ファイルを探していることを意味します。これは、展開後の .WAV ファイルの場所ではありません。さらにCopy Always、.WAV ファイルを実行可能ファイルと同じディレクトリにコピーする必要があると思います。ナビゲーションの開始点として実行可能ファイルを使用してサウンド ファイルを見つけているので、それが配置されていることを確認する必要があります。開発環境と展開後の両方で、実行可能ファイルに対してまったく同じ場所にあります。

基本的に、展開すると、ファイルは別の場所に移動します。ビルド構成とインストーラー構成の両方で、どこに行くべきかを必ず指定してください。

于 2012-12-28T19:48:25.073 に答える