2

ファイルが見つからないという例外が表示されますか? Inside Assets 「beep.wav」がありますが、機能していません。 visual studio 2012\Projects\Myproject\Myproject\Assets

private async void beep()
{
    MediaElement snd = new MediaElement();
    StorageFolder folder = await Package.Current.InstalledLocation.GetFolderAsync("Assets");
    StorageFile file = await folder.GetFileAsync("beep.wav");
    var stream = await file.OpenAsync(FileAccessMode.Read);
    snd.SetSource(stream, file.ContentType);
    snd.Play();
}

この上記のコードは機能します。手動でプロジェクトに追加する必要があるだけです....

4

2 に答える 2

1

アプリケーションを実行するPackage.Current.InstalledLocationと、プロジェクトが配置されているディレクトリ (visual studio 2012\Projects\Myproject\Myproject\Assets) ではなく、アプリケーションがデプロイされるディレクトリになります (おそらく のようなものですvisual studio 2012\Projects\Myproject\Myproject\bin\Debug\AppX\Assets)。

そのため、wav ファイルをプロジェクトの Assets ディレクトリに手動でコピーしただけでは、アプリケーションはデプロイされた場所で wav ファイルを探すため、機能しません。

wav ファイルをプロジェクトに追加した後に機能することに気付きましたが、ファイルをプロジェクトに追加しただけでは機能しませんでした。ファイルを Windows ストア プロジェクトに追加し、ファイルの [プロパティ] で [ビルド アクション]を[コンテンツ] に設定すると、ファイルはアプリのデプロイされた場所にコピーされます。

このファイルの Build Action を Content に手動で設定する必要はありませんでした。これは、VS が特定のファイル タイプ (wav など) に対して自動的に設定するため、ファイルがデプロイされた場所にコピーされたためです。

于 2013-06-11T18:06:41.450 に答える