2016-04-08 10 views
1

私はコンソールアプリケーションで「テキストのみ」のゲームに取り組んでいます。アプリケーションにサウンドを追加する方法を探しましたが、すべてのソリューションで.wavファイルの場所へのパスを含める必要がありました。それはうまくいくだろうが、後で私のゲームを公開したい。ファイルの場所が自分のPCと一致する場合、ダウンロードしたユーザーはコンテンツファイルをc:/ Mygame/Content以外の場所に置くことができます。もし彼が複数のハードドライブを持っていたら?またはキーのディスク?プログラムはサウンドを見つけることができないので、サウンドは再生されません。何か案は?コンテンツファイルを作成し、それをコンソールアプリケーションからナビゲートするにはどうすればいいですか?

+0

あなたの代わりに相対パスを試してみましたか?あなたのサウンドファイルをbinディレクトリに置き、次にファイル名 'foo.wav' – BobbyJ

答えて

0

コンソールアプリケーションが相対パス(「〜/ Content」のようなもの)を使用して.wav形式のファイルを参照できるようにして、アプリケーションの現在のディレクトリを参照するようにする必要があります。

私は今すぐ仕事ができていますので、あなたは簡単なインストーラを構築することができます(または、アプリケーションディレクトリに.wavファイルサイトを持っていれば、私が今家に帰ったときにこの問題がまだ残っているなら、何かを模擬してここに投稿します。

+0

をこのようにする必要がありますか? 'SoundPlayer.SoundLocation = @"〜\ kth; tls_content_orig \ DIE_ANTWOORD _-_ UGLY_BOY.wav ";' –

+0

あなたは実際に〜のままにして、ちょうど@ "kth; tls_content_orig \ DIE_ANTWOORD _-_ UGLY_BOY.wav"を使用することができます。私は家に帰るときにテストしなければならないと言った。上記のWabbiの答えも参照してください。これは、プログラムの現在の作業ディレクトリからあなたのパスを特定する必要がある場合に便利です(特定の展開スキームがこの必要性を引き起こす可能性があります)。 – Rocky

+0

あなたはどこですか? –

2

あなたの.exeファイルに関連する場所にWAVファイルを保存してください:

System.Reflection.Assembly.GetExecutingAssembly().Location 

実行時に.exeファイルの場所を動的に取得し、.WAVファイルの名前に追加します。

+0

.exeファイルの場所を取得した後、私は2つの問題がありました。 1.それは.exeファイルを実行します。(ofcurseですが、どのように修正すればい​​いですか?2種類の混乱があり、多くのサウンドが失われてしまいます。 somhow? –

1

このコード行で自分で解決しました。 `string exe_location = System.Reflection.Assembly.GetExecutingAssembly()。Location; exe_location = exe_location.Remove(exe_location.Length - 11); int last_path_chat = exe_location.Length;

 string sound_location = exe_location.Insert(last_path_chat, "DIE_ANTWOORD_-_UGLY_BOY.wav"); 

SoundPlayer.SoundLocation = sound_location; SoundPlayer.PlaySync();

関連する問題