この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

SoundPlayer クラス

 

公開日: 2016年10月

.Wav ファイルからのサウンドの再生を制御します。

名前空間:   System.Media
アセンブリ:  System (System.dll 内)

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.Media.SoundPlayer

[SerializableAttribute]
[HostProtectionAttribute(SecurityAction.LinkDemand, UI = true)]
public class SoundPlayer : Component, ISerializable

名前説明
System_CAPS_pubmethodSoundPlayer()

SoundPlayer クラスの新しいインスタンスを初期化します。

System_CAPS_protmethodSoundPlayer(SerializationInfo, StreamingContext)

SoundPlayer クラスの新しいインスタンスを初期化します。

System_CAPS_pubmethodSoundPlayer(Stream)

新しいインスタンスを初期化、 SoundPlayer クラス、および指定した .wav ファイルをアタッチ Streamします。

System_CAPS_pubmethodSoundPlayer(String)

新しいインスタンスを初期化、 SoundPlayer クラス、および指定した .wav ファイルをアタッチします。

名前説明
System_CAPS_protpropertyCanRaiseEvents

コンポーネントがイベントを発生させることができるかどうかを示す値を取得します。(Component から継承されます。)

System_CAPS_pubpropertyContainer

取得、 IContainer を含む、 Componentです。(Component から継承されます。)

System_CAPS_protpropertyDesignMode

示す値を取得するかどうか、 Component デザイン モードになっています。(Component から継承されます。)

System_CAPS_protpropertyEvents

これに関連付けられているイベント ハンドラーの一覧を取得 Componentします。(Component から継承されます。)

System_CAPS_pubpropertyIsLoadCompleted

.Wav ファイルの読み込みが正常に完了したかどうかを示す値を取得します。

System_CAPS_pubpropertyLoadTimeout

取得または .wav ファイルを読み込む必要があります (ミリ秒)、時間を設定します。

System_CAPS_pubpropertySite

取得または設定、 ISiteComponentです。(Component から継承されます。)

System_CAPS_pubpropertySoundLocation

取得またはファイル パスまたは読み込む .wav ファイルの URL を設定します。

System_CAPS_pubpropertyStream

取得または設定、 Stream .wav ファイルの読み込み元のです。

System_CAPS_pubpropertyTag

取得または設定、 Object に関するデータを格納、 SoundPlayerです。

名前説明
System_CAPS_pubmethodCreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要なすべての関連情報を格納しているオブジェクトを作成します。(MarshalByRefObject から継承されます。)

System_CAPS_pubmethodDispose()

Component によって使用されているすべてのリソースを解放します。(Component から継承されます。)

System_CAPS_protmethodDispose(Boolean)

Component によって使用されているアンマネージ リソースを解放し、オプションでマネージ リソースも解放します。(Component から継承されます。)

System_CAPS_pubmethodEquals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。(Object から継承されます。)

System_CAPS_protmethodFinalize()

Component がガベージ コレクションによって回収される前に、アンマネージ リソースを解放し、その他のクリーンアップ操作を実行します。(Component から継承されます。)

System_CAPS_pubmethodGetHashCode()

既定のハッシュ関数として機能します。(Object から継承されます。)

System_CAPS_pubmethodGetLifetimeService()

このインスタンスの有効期間ポリシーを制御する現在の有効期間サービス オブジェクトを取得します。(MarshalByRefObject から継承されます。)

System_CAPS_protmethodGetService(Type)

Component またはその Container で提供されるサービスを表すオブジェクトを返します。(Component から継承されます。)

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。(Object から継承されます。)

System_CAPS_pubmethodInitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。(MarshalByRefObject から継承されます。)

System_CAPS_pubmethodLoad()

サウンドを同期的に読み込まれます。

System_CAPS_pubmethodLoadAsync()

ストリームまたは新しいスレッドを使用して Web リソースから .wav ファイルを読み込みます。

System_CAPS_protmethodMemberwiseClone()

現在の Object の簡易コピーを作成します。(Object から継承されます。)

System_CAPS_protmethodMemberwiseClone(Boolean)

現在の簡易コピーを作成MarshalByRefObjectオブジェクト。(MarshalByRefObject から継承されます。)

System_CAPS_protmethodOnLoadCompleted(AsyncCompletedEventArgs)

LoadCompleted イベントを発生させます。

System_CAPS_protmethodOnSoundLocationChanged(EventArgs)

SoundLocationChanged イベントを発生させます。

System_CAPS_protmethodOnStreamChanged(EventArgs)

StreamChanged イベントを発生させます。

System_CAPS_pubmethodPlay()

新しいスレッドを使用して .wav ファイルを再生され、読み込まれていない場合は、.wav ファイルを最初に読み込まれます。

System_CAPS_pubmethodPlayLooping()

再生し、新しいスレッドを使用して .wav ファイルをループし、読み込まれていない場合に、.wav ファイルを最初にロードします。

System_CAPS_pubmethodPlaySync()

.Wav ファイルを再生され、読み込まれていない場合は、.wav ファイルを最初に読み込まれます。

System_CAPS_pubmethodStop()

再生が行われている場合、サウンドの再生を停止します。

System_CAPS_pubmethodToString()

返します。、 String の名前を含む、 Component, 、存在する場合。 このメソッドはオーバーライドできません。(Component から継承されます。)

名前説明
System_CAPS_pubeventDisposed

呼び出しによってコンポーネントが破棄されるときに発生、 Dispose メソッドです。(Component から継承されます。)

System_CAPS_pubeventLoadCompleted

.Wav ファイルが成功または失敗読み込まれたときに発生します。

System_CAPS_pubeventSoundLocationChanged

このときに新しいオーディオ ソース パスを発生 SoundPlayer が設定されています。

System_CAPS_pubeventStreamChanged

新しい場合に発生 Stream これのオーディオ ソース SoundPlayer が設定されています。

名前説明
System_CAPS_pubinterfaceSystem_CAPS_privmethodISerializable.GetObjectData(SerializationInfo, StreamingContext)

このメンバーの説明については、ISerializable.GetObjectData メソッドのトピックを参照してください。

SoundPlayer クラスの読み込みと .wav ファイルの再生の単純なインターフェイスを提供します。 SoundPlayer クラスは、ファイルのパス、URL から .wav ファイルの読み込みをサポートする、 Stream .wav ファイル、または .wav ファイルを含む埋め込みリソースを含みます。

使用してサウンドを再生する、 SoundPlayer クラスで、構成、 SoundPlayer .wav ファイルと再生のいずれかの呼び出しパスを使用します。 コンス トラクターのいずれかを使用するか、いずれかの設定を再生する .wav ファイルを識別する、 SoundLocation または Stream プロパティです。 Load メソッドのいずれかを使用して再生する前に、ファイルを読み込むことがまたは play メソッドが呼び出されるまでは、読み込みを延期することができます。 A SoundPlayer から .wav ファイルを読み込むように構成、 Stream URL は、再生が開始前に、メモリの .wav ファイルを読み込む必要がありますか。

ロードまたは .wav ファイルの同期または非同期で再生できます。 同期読み込みを呼び出すメソッドを再生するか、呼び出し元のスレッドは中断されることの描画、およびその他のイベントを引き起こす可能性のあるメソッドを返しますまで待機します。 非同期の読み込みまたは play メソッドを呼び出すと、呼び出し元のスレッドを中断することがなく続行できます。 非同期メソッド呼び出しの詳細については、次を参照してください。 方法 : バックグラウンドで操作を実行するします。

ときに、 SoundPlayer .wav ファイルの読み込みが完了したを生成、 LoadCompleted イベントです。 調べることができます、 AsyncCompletedEventArgs 負荷が成功または失敗したかどうかを判断するイベント ハンドラーでします。 SoundLocationChanged オーディオ ソースが、新しいファイル パスまたは URL に設定されているときにイベントが発生します。 StreamChanged を新しいオーディオ ソースが設定されている場合、イベントが発生した Streamします。 イベント処理の詳細については、次を参照してください。 NIB: イベントの利用します。

SoundPlayer の詳細については、「SoundPlayer クラスの概要」を参照してください。

System_CAPS_noteメモ

    SoundPlayer クラスは、.wma、.mp3 などその他のファイルの種類を再生できません。 その他のファイルの種類を再生する場合は、Windows Media Player コントロールを使用できます。 詳細については、次を参照してください。 Using the Windows Media Player Control in a .NET Framework SolutionWindows Media Player Object Model Reference for Visual Basic .NET and C# Windows Media Player SDK に含まれています。

次のコード例では、使用、 SoundPlayer ローカル パスまたは Uniform Resource Identifier (URI) から .wav ファイルを再生するためのクラスです。


using System;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Media;
using System.Windows.Forms;

namespace SoundApiExample
{
    public class SoundTestForm : System.Windows.Forms.Form
    {
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.TextBox filepathTextbox;        
        private System.Windows.Forms.Button playOnceSyncButton;
        private System.Windows.Forms.Button playOnceAsyncButton;
        private System.Windows.Forms.Button playLoopAsyncButton;
        private System.Windows.Forms.Button selectFileButton;

        private System.Windows.Forms.Button stopButton;
        private System.Windows.Forms.StatusBar statusBar;
        private System.Windows.Forms.Button loadSyncButton;
        private System.Windows.Forms.Button loadAsyncButton;        
        private SoundPlayer player;

        public SoundTestForm()
        {
            // Initialize Forms Designer generated code.
            InitializeComponent();

            // Disable playback controls until a valid .wav file 
            // is selected.
            EnablePlaybackControls(false);

            // Set up the status bar and other controls.
            InitializeControls();

            // Set up the SoundPlayer object.
            InitializeSound();
        }

        // Sets up the status bar and other controls.
        private void InitializeControls()
        {
            // Set up the status bar.
            StatusBarPanel panel = new StatusBarPanel();
            panel.BorderStyle = StatusBarPanelBorderStyle.Sunken;
            panel.Text = "Ready.";
            panel.AutoSize = StatusBarPanelAutoSize.Spring;
            this.statusBar.ShowPanels = true;
            this.statusBar.Panels.Add(panel);
        }

        // Sets up the SoundPlayer object.
        private void InitializeSound()
        {
            // Create an instance of the SoundPlayer class.
            player = new SoundPlayer();

            // Listen for the LoadCompleted event.
            player.LoadCompleted += new AsyncCompletedEventHandler(player_LoadCompleted);

            // Listen for the SoundLocationChanged event.
            player.SoundLocationChanged += new EventHandler(player_LocationChanged);
        }

        private void selectFileButton_Click(object sender, 
            System.EventArgs e)
        {
            // Create a new OpenFileDialog.
            OpenFileDialog dlg = new OpenFileDialog();

            // Make sure the dialog checks for existence of the 
            // selected file.
            dlg.CheckFileExists = true;

            // Allow selection of .wav files only.
            dlg.Filter = "WAV files (*.wav)|*.wav";
            dlg.DefaultExt = ".wav";

            // Activate the file selection dialog.
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                // Get the selected file's path from the dialog.
                this.filepathTextbox.Text = dlg.FileName;

                // Assign the selected file's path to 
                // the SoundPlayer object.  
                player.SoundLocation = filepathTextbox.Text;
            }
        }

        // Convenience method for setting message text in 
        // the status bar.
        private void ReportStatus(string statusMessage)
        {
            // If the caller passed in a message...
            if ((statusMessage != null) && (statusMessage != String.Empty))
            {
                // ...post the caller's message to the status bar.
                this.statusBar.Panels[0].Text = statusMessage;
            }
        }

        // Enables and disables play controls.
        private void EnablePlaybackControls(bool enabled)
        {   
            this.playOnceSyncButton.Enabled = enabled;
            this.playOnceAsyncButton.Enabled = enabled;
            this.playLoopAsyncButton.Enabled = enabled;
            this.stopButton.Enabled = enabled;
        }

        private void filepathTextbox_TextChanged(object sender, 
            EventArgs e)
        {
            // Disable playback controls until the new .wav is loaded.
            EnablePlaybackControls(false);
        }

        private void loadSyncButton_Click(object sender, 
            System.EventArgs e)
        {   
            // Disable playback controls until the .wav is 
            // successfully loaded. The LoadCompleted event 
            // handler will enable them.
            EnablePlaybackControls(false);

            try
            {
                // Assign the selected file's path to 
                // the SoundPlayer object.  
                player.SoundLocation = filepathTextbox.Text;

                // Load the .wav file.
                player.Load();
            }
            catch (Exception ex)
            {
                ReportStatus(ex.Message);
            }
        }

        private void loadAsyncButton_Click(System.Object sender, 
            System.EventArgs e)
        {
            // Disable playback controls until the .wav is 
            // successfully loaded. The LoadCompleted event 
            // handler will enable them.
            EnablePlaybackControls(false);

            try
            {
                // Assign the selected file's path to 
                // the SoundPlayer object.  
                player.SoundLocation = this.filepathTextbox.Text;

                // Load the .wav file.
                player.LoadAsync();
            }
            catch (Exception ex)
            {
                ReportStatus(ex.Message);
            }
        }

        // Synchronously plays the selected .wav file once.
        // If the file is large, UI response will be visibly 
        // affected.
        private void playOnceSyncButton_Click(object sender, 
            System.EventArgs e)
        {	
            ReportStatus("Playing .wav file synchronously.");
            player.PlaySync();
            ReportStatus("Finished playing .wav file synchronously.");
        }

        // Asynchronously plays the selected .wav file once.
        private void playOnceAsyncButton_Click(object sender, 
            System.EventArgs e)
        {
            ReportStatus("Playing .wav file asynchronously.");
            player.Play();
        }

        // Asynchronously plays the selected .wav file until the user
        // clicks the Stop button.
        private void playLoopAsyncButton_Click(object sender, 
            System.EventArgs e)
        {
            ReportStatus("Looping .wav file asynchronously.");
            player.PlayLooping();
        }

        // Stops the currently playing .wav file, if any.
        private void stopButton_Click(System.Object sender,
            System.EventArgs e)
        {	
            player.Stop();
            ReportStatus("Stopped by user.");
        }

        // Handler for the LoadCompleted event.
        private void player_LoadCompleted(object sender, 
            AsyncCompletedEventArgs e)
        {   
            string message = String.Format("LoadCompleted: {0}", 
                this.filepathTextbox.Text);
            ReportStatus(message);
            EnablePlaybackControls(true);
        }

        // Handler for the SoundLocationChanged event.
        private void player_LocationChanged(object sender, EventArgs e)
        {   
            string message = String.Format("SoundLocationChanged: {0}", 
                player.SoundLocation);
            ReportStatus(message);
        }

        private void playSoundFromResource(object sender, EventArgs e)
        {
            System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
            System.IO.Stream s = a.GetManifestResourceStream("<AssemblyName>.chimes.wav");
            SoundPlayer player = new SoundPlayer(s);
            player.Play();
        }

        #region Windows Form Designer generated code
        private void InitializeComponent()
        {
            this.filepathTextbox = new System.Windows.Forms.TextBox();
            this.selectFileButton = new System.Windows.Forms.Button();
            this.label1 = new System.Windows.Forms.Label();
            this.loadSyncButton = new System.Windows.Forms.Button();
            this.playOnceSyncButton = new System.Windows.Forms.Button();
            this.playOnceAsyncButton = new System.Windows.Forms.Button();
            this.stopButton = new System.Windows.Forms.Button();
            this.playLoopAsyncButton = new System.Windows.Forms.Button();
            this.statusBar = new System.Windows.Forms.StatusBar();
            this.loadAsyncButton = new System.Windows.Forms.Button();
            this.SuspendLayout();
            // 
            // filepathTextbox
            // 
            this.filepathTextbox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right)));
            this.filepathTextbox.Location = new System.Drawing.Point(7, 25);
            this.filepathTextbox.Name = "filepathTextbox";
            this.filepathTextbox.Size = new System.Drawing.Size(263, 20);
            this.filepathTextbox.TabIndex = 1;
            this.filepathTextbox.Text = "";
            this.filepathTextbox.TextChanged += new System.EventHandler(this.filepathTextbox_TextChanged);
            // 
            // selectFileButton
            // 
            this.selectFileButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
            this.selectFileButton.Location = new System.Drawing.Point(276, 25);
            this.selectFileButton.Name = "selectFileButton";
            this.selectFileButton.Size = new System.Drawing.Size(23, 21);
            this.selectFileButton.TabIndex = 2;
            this.selectFileButton.Text = "...";
            this.selectFileButton.Click += new System.EventHandler(this.selectFileButton_Click);
            // 
            // label1
            // 
            this.label1.Location = new System.Drawing.Point(7, 7);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(145, 17);
            this.label1.TabIndex = 3;
            this.label1.Text = ".wav path or URL:";
            // 
            // loadSyncButton
            // 
            this.loadSyncButton.Location = new System.Drawing.Point(7, 53);
            this.loadSyncButton.Name = "loadSyncButton";
            this.loadSyncButton.Size = new System.Drawing.Size(142, 23);
            this.loadSyncButton.TabIndex = 4;
            this.loadSyncButton.Text = "Load Synchronously";
            this.loadSyncButton.Click += new System.EventHandler(this.loadSyncButton_Click);
            // 
            // playOnceSyncButton
            // 
            this.playOnceSyncButton.Location = new System.Drawing.Point(7, 86);
            this.playOnceSyncButton.Name = "playOnceSyncButton";
            this.playOnceSyncButton.Size = new System.Drawing.Size(142, 23);
            this.playOnceSyncButton.TabIndex = 5;
            this.playOnceSyncButton.Text = "Play Once Synchronously";
            this.playOnceSyncButton.Click += new System.EventHandler(this.playOnceSyncButton_Click);
            // 
            // playOnceAsyncButton
            // 
            this.playOnceAsyncButton.Location = new System.Drawing.Point(149, 86);
            this.playOnceAsyncButton.Name = "playOnceAsyncButton";
            this.playOnceAsyncButton.Size = new System.Drawing.Size(147, 23);
            this.playOnceAsyncButton.TabIndex = 6;
            this.playOnceAsyncButton.Text = "Play Once Asynchronously";
            this.playOnceAsyncButton.Click += new System.EventHandler(this.playOnceAsyncButton_Click);
            // 
            // stopButton
            // 
            this.stopButton.Location = new System.Drawing.Point(149, 109);
            this.stopButton.Name = "stopButton";
            this.stopButton.Size = new System.Drawing.Size(147, 23);
            this.stopButton.TabIndex = 7;
            this.stopButton.Text = "Stop";
            this.stopButton.Click += new System.EventHandler(this.stopButton_Click);
            // 
            // playLoopAsyncButton
            // 
            this.playLoopAsyncButton.Location = new System.Drawing.Point(7, 109);
            this.playLoopAsyncButton.Name = "playLoopAsyncButton";
            this.playLoopAsyncButton.Size = new System.Drawing.Size(142, 23);
            this.playLoopAsyncButton.TabIndex = 8;
            this.playLoopAsyncButton.Text = "Loop Asynchronously";
            this.playLoopAsyncButton.Click += new System.EventHandler(this.playLoopAsyncButton_Click);
            // 
            // statusBar
            // 
            this.statusBar.Location = new System.Drawing.Point(0, 146);
            this.statusBar.Name = "statusBar";
            this.statusBar.Size = new System.Drawing.Size(306, 22);
            this.statusBar.SizingGrip = false;
            this.statusBar.TabIndex = 9;
            this.statusBar.Text = "(no status)";
            // 
            // loadAsyncButton
            // 
            this.loadAsyncButton.Location = new System.Drawing.Point(149, 53);
            this.loadAsyncButton.Name = "loadAsyncButton";
            this.loadAsyncButton.Size = new System.Drawing.Size(147, 23);
            this.loadAsyncButton.TabIndex = 10;
            this.loadAsyncButton.Text = "Load Asynchronously";
            this.loadAsyncButton.Click += new System.EventHandler(this.loadAsyncButton_Click);
            // 
            // SoundTestForm
            // 
            this.ClientSize = new System.Drawing.Size(306, 168);
            this.Controls.Add(this.loadAsyncButton);
            this.Controls.Add(this.statusBar);
            this.Controls.Add(this.playLoopAsyncButton);
            this.Controls.Add(this.stopButton);
            this.Controls.Add(this.playOnceAsyncButton);
            this.Controls.Add(this.playOnceSyncButton);
            this.Controls.Add(this.loadSyncButton);
            this.Controls.Add(this.label1);
            this.Controls.Add(this.selectFileButton);
            this.Controls.Add(this.filepathTextbox);
            this.MinimumSize = new System.Drawing.Size(310, 165);
            this.Name = "SoundTestForm";
            this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show;
            this.Text = "Sound API Test Form";
            this.ResumeLayout(false);

        }
        #endregion

        [STAThread]
        static void Main()
        {
            Application.Run(new SoundTestForm());
        }
    }
}

.NET Framework
2.0 以降で使用可能

この型のパブリック static (Visual Basic では Shared ) メンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

トップに戻る
表示: