0

私はWindowsPhoneの開発に不慣れで、簡単なトレーニングアプリを実行しようとしています。

プロジェクト内のフォルダーに入れたオーディオファイルをアプリにロードさせたい。

短いスニペットは次のとおりです。

private void LoadSound(String SoundFilePath, out SoundEffect Sound)
    {

        // For error checking, assume we'll fail to load the file.
        Sound = null;
        try
        {                
            // Holds informations about a file stream.                
            StreamResourceInfo SoundFileInfo = Application.GetResourceStream(new Uri(SoundFilePath, UriKind.Relative));

私のフォルダ構造は次のようなものです

- Project
    - Kits
        - TestKit_128
            - Bass_126.wav

と呼び出し

Button.setSound("Kits\\TestKit_128\\bass_126.wav");

System.NullReferenceExceptionURIの作成時にパスが見つからないため、をスローします。(少なくとも私はそう思う!)

私は何をすべきか?

プロジェクト内のフォルダーからファイルをロードしたり、アプリを初めて実行したときにそれらをIsolatedStorageにコピーしたりする方法はありますか?

ありがとう

編集:

WinRarでXAPファイルを開いたところ、「Kits」フォルダーがないので、XAPファイルにフォルダーを追加する方法が問題だと思います。

4

3 に答える 3

0

wavファイルのビルドアクションを「コンテンツ」に設定しましたか?WAVファイルを右クリック->プロパティ->ビルドアクション==コンテンツ。

于 2013-01-15T18:22:01.567 に答える
0

フォルダーとファイルをプロジェクトに追加する必要があると思います(Visual Studioを使用していると想定しています)。ソリューションを右クリックして、既存のオブジェクト(この場合はwavファイル)を追加してみてください。

于 2013-01-15T18:34:10.840 に答える
0

これを試して:

        Uri uri = new Uri("Kits/TestKit_128/bass_126.wav", UriKind.Relative);//Above the Kits folder only the project itself. 
        StreamResourceInfo sr = Application.GetResourceStream(uri);

        try
        {
            using (Stream stream = sr.Stream)
            {
                //working here with your data image or wav or whatever you want from URI
            }
        }
        catch (Exception)
        {
        }

これはプロジェクト内のリソースのためであり、私にとってはうまく機能しています。また、「コンテンツ」についての前置きのメモは正しいです、それなしでは機能しません。問題はアドレスのダブルスラッシュだと思います。

于 2013-01-15T18:57:06.527 に答える