0

こんにちはList<SystemSound>リコースからの音楽でを作成する方法は?

私はこれを試しますが、例外を下回ります:

    List<System.Media.SystemSound> music = new List<System.Media.SystemSound>
    {
        global::Launcher.Properties.Resources.music_quit_1,
        global::Launcher.Properties.Resources.music_quit_2,
        global::Launcher.Properties.Resources.music_quit_3,
        global::Launcher.Properties.Resources.music_quit_4,
    };

「引数1:System.IO.UnmanagedMemoryStreamからSystem.Media.SystemSoundに変換できません。」

それから私は音楽にランダムになり、それを演奏した後です。

4

1 に答える 1

1

このクラスはこのようには使用されません。このクラスは、、、、、などのシステムサウンドタイプSystem.Media.SystemSoundを表すためにのみ使用されます。を介してシステムサウンドを再生できます。AsteriskBeepHandQuestionExclamationSystemSounds

SystemSounds.Asterisk.Play();

この例では、システムサウンド Asteriskを再生します。System.Drawing.Brushこれはあなたが言うことができないのと似ていますSystem.Drawing.Brush.Blackが、あなたは言うことができますSystem.Drawing.Brushes.Black。新しい名前のクラスで名前System.Drawing.Brushのオブジェクトを色として定義するためにのみ使用されました。これは、次の定義で確認できます。BlackSystem.Drawing.BrushesBlackSystem.Drawing.Brushes

//
// Summary:
//     Gets a system-defined System.Drawing.Brush object.
//
// Returns:
//     A System.Drawing.Brush object set to a system-defined color.
public static Brush Black { get; }

さらに、新しいWaveサウンドを再生する場合は、 Sound Wave(.wav)ファイルSoundPlayerからのサウンドの再生を制御する新しいクラスを作成できます。

SoundPlayer _SoundPlayer = new SoundPlayer(); //Initializes a new SoundPlayer of name _SoundPlayer
_SoundPlayer.SoundLocation = @"D:\Resources\International\Greetings.wav"; //Sets the target Wave Sound file to D:\...\Greetings.wav
_SoundPlayer.Play(); //Plays the target Wave Sound file

それでもGenericを使用したい場合List。次に、おそらく次の例が役立つかもしれません

List<string> WaveSoundCollections = new List<string> { @"D:\Resources\International\Greetings.wav", @"D:\Resources\International\Good-Bye.wav" }; //Initializes a new Generic Collection of class List of type string and injecting TWO strings into the Generic Collection
SoundPlayer NewPlayer = new SoundPlayer(); //Initializes a new SoundPlayer
if (Client.Start) //Client refers to a particular Class that has Start and End as bool
{
    NewPlayer.SoundLocation = WaveSoundCollections[0]; //Set the SoundLocation of NewPlayer to D:\Resources\International\Greetings.wav
    NewPlayer.Play(); //Plays the target Wave Sound file
}
else if (Client.End)
{
    NewPlayer.SoundLocation = WaveSoundCollections[1]; //Set the SoundLocation of NewPlayer to D:\Resources\International\Good-Bye.wav
    NewPlayer.Play(); //Plays the target Wave Sound file
}

注意WaveSoundファイルの再生SoundPlayerのみ使用されます。.mp3.mpegなどの他のメディアファイルを再生したい場合は、からインポートできるを使用して、の新しいクラスを作成し、特定のファイルを再生できます。System.Windows.Media.MediaPlayerObject BrowserMediaPlayer

string TargetFile = @"D:\File.mp3";
MediaPlayer _MediaPlayer = new MediaPlayer();
_MediaPlayer.Open(new Uri(TargetFile));
_MediaPlayer.Play();

重要:を使用するMediaPlayerには、の新しい参照を追加する必要がありますWindowsBase

の新しい参照を追加するにはWindowsBase、次のことを試してください。

  • ソリューションエクスプローラーから[参照]を右クリックし、[参照の追加... ]を選択します。
  • WindowsBaseを選択し、[ OK ]をクリックします
  • 追加したばかりの新しい参照に、 Copy Localという名前のboolのプロパティがTrueに設定されていることを確認して、クライアントが初期化中にエラーに遭遇しないようにします。

     このような場合は、CopyLocalをTrueに設定することが重要です。

ありがとう、
これがお役に立てば幸いです:)

于 2012-11-11T15:45:03.953 に答える