c#でのwaveファイル再生について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
mes

c#でのwaveファイル再生について

#1

投稿記事 by mes » 14年前

SoundPlayerクラスを使ってwaveファイルを再生させるプログラムを作っているのですが、waveファイルを再生させるところまでは作ることができたのですが、waveファイルの再生を一時停止してその停止したところから再生させる処理の実装の仕方が分かりません。
総合開発環境のvisual c# 2010 express を使っています。
どなたか教えて下さい。
ソースコードは下に貼り付けておきます。

コード:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Media;
using System.IO;


namespace SimpleMusicPlayer
{
    public partial class Form1 : Form
    {
        public SoundPlayer PlayMusic = new SoundPlayer();
        public OpenFileDialog OpenFile = new OpenFileDialog();
        private string Wave;

        public Form1()
        {
            InitializeComponent();
        }

        
        private void oPENToolStripMenuItem_Click(object sender, EventArgs e)
        {

            OpenFile.Filter = "wavファイル (*.wav)|*.wav";
            OpenFile.Title = "File open";
            OpenFile.FileName = "";
            OpenFile.ShowReadOnly = true;
            OpenFile.RestoreDirectory = true;
            
            OpenFile.FileOk += new CancelEventHandler(OpenFile_FileOk);

            if (OpenFile.ShowDialog() == DialogResult.OK)
            {
                Wave = OpenFile.FileName;
            }

        }



        private void Play_Click(object sender, EventArgs e)
        {
            PlayMusic.SoundLocation = Wave;
            PlayMusic.Load();

            if (PlayMusic.IsLoadCompleted)
            {
                PlayButton.Visible = false;
                StopButton.Visible = true;
               
                PlayMusic.Play();
            }
            else
            {
                MessageBox.Show("No music file", "Error");
                PlayMusic.Dispose();
                OpenFile.Dispose();
            }
        }

        private void Stop_Click(object sender, EventArgs e)
        {
            StopButton.Visible = false;
            PlayButton.Visible = true;
            
        }

        private void OpenFile_FileOk(object sender, CancelEventArgs e)
        {
            MessageBox.Show("Wave file load is completed", "Complete");
            
        }

        

    }
}

mes

Re: c#でのwaveファイル再生について

#2

投稿記事 by mes » 14年前

コードの記述に足りないところがあったので補足しておきます。

コード:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Media;
using System.IO;


namespace SimpleMusicPlayer
{
    public partial class Form1 : Form
    {
        public SoundPlayer PlayMusic = new SoundPlayer();
        public OpenFileDialog OpenFile = new OpenFileDialog();
        private string Wave;

        public Form1()
        {
            InitializeComponent();
        }

        
        private void oPENToolStripMenuItem_Click(object sender, EventArgs e)
        {

            OpenFile.Filter = "wavファイル (*.wav)|*.wav";
            OpenFile.Title = "File open";
            OpenFile.FileName = "";
            OpenFile.ShowReadOnly = true;
            OpenFile.RestoreDirectory = true;
            
            OpenFile.FileOk += new CancelEventHandler(OpenFile_FileOk);

            if (OpenFile.ShowDialog() == DialogResult.OK)
            {
                Wave = OpenFile.FileName;
            }

        }



        private void Play_Click(object sender, EventArgs e)
        {
            PlayMusic.SoundLocation = Wave;
            PlayMusic.Load();

            if (PlayMusic.IsLoadCompleted)
            {
                PlayMusic.Play();
                PlayButton.Visible = false;
                StopButton.Visible = true;
               
                
            }
            else
            {
                MessageBox.Show("No music file", "Error");
                PlayMusic.Dispose();
                OpenFile.Dispose();
            }
        }

        private void Stop_Click(object sender, EventArgs e)
        {
            PlayMusic.Stop();//この記述がなかったので追加しました
            StopButton.Visible = false;
            PlayButton.Visible = true;
            
        }

        private void OpenFile_FileOk(object sender, CancelEventArgs e)
        {
            MessageBox.Show("Wave file load is completed", "Complete");
            
        }

        

    }
}

閉鎖

“C言語何でも質問掲示板” へ戻る