Trong lập trình ứng dụng hoặc games với C# các bạn thường gặp vấn đề về việc thao tác với âm thanh. Bài viết này sẽ hướng dẫn các bạn thao tác âm thanh với thư viện WMPLib.
C# Vothanhvu 2017-06-01 16:55:35

Giới thiệu

Trong lập trình ứng dụng hoặc games với C# các bạn thường gặp vấn đề về việc thao tác âm thanh, có rất nhiều thư viện hỗ trợ cho chúng ta giải quyết vấn đề này. Bài viết này sẽ hướng dẫn các bạn thao tác âm thanh với thư viện WMPLib.
WMPLib là thư viện âm thanh của Windows Media Player, thư viện này có sẵn trong hệ điều hành Windows, hỗ trợ xử lý nhiều loại file âm thanh như WAV, MP3,… và có nhiều phương thức thao tác với âm thanh như Play, Pause, Stop, Volume, Playlist.

Tiền đề bài viết

Bài viết này ra đời nhằm mục đích giải quyết vấn đề khó khăn của việc thao tác với âm thanh trong lập trình C# của các lập trình viên.

Đối tượng hướng đến

Bài viết này nhằm hướng đến các bạn lập trình viên đã nắm vững kiến thức cơ bản trong lập trình C#, đang gặp khó khăn trong việc thao tác điều khiển âm thanh trong lập trình ngôn ngữ này.

Thêm thư viện WMPLib vào Project

Để thêm thư viện WMPLib vào dự án, chúng ta làm theo các bước như sau.
Đầu tiên, ta chuột phải vào Project và chọn Add  Reference…

Thao tác âm thanh trong csharp

Tiếp theo, một hộp thoại xuất hiện ta chọn xuống tab Browse (1) và nhấn vào nút Browse…, chọn đến file wmp.dll nằm trong đường dẫn C:\Windows\System32 (2). Sau đó đánh dấu tích vào thư viện wmp.dll (3) và chọn nút OK, vậy là đã hoàn thành quá trình thêm thư viện WMPLib vào dự án.

Thao tác âm thanh trong csharp 2

Thao tác âm thanh qua thư viện WMPLib

Đầu tiên, ta phải using namespace WMPLib trong trong code.

using WMPLib;

Khởi tạo đối tượng WindowsMediaPlayer và gán giá trị đường dẫn đến file âm thanh.

WindowsMediaPlayer sound = new WindowsMediaPlayer();
sound.URL = "STDIO_Sound.mp3";

Sau đó, ta chỉ việc sử dụng các phương thức có sẵn dưới đây để thao tác với âm thanh.

sound.controls.play(); //Play sound
sound.controls.pause(); //Pause sound
sound.controls.stop(); //Stop sound

Ngoài 3 phương thức cơ bản này, còn nhiều phương thức khác các bạn có thể tự tìm hiểu thêm.

Mã nguồn

File class SoundManager.cs

using WMPLib;

namespace SoundAplication
{
    public class SoundManager
    {
        WindowsMediaPlayer sound;

        public SoundManager(string _filePath)
        {
            sound = new WindowsMediaPlayer();
            sound.URL = _filePath;
        }

        public void Play()
        {
            sound.controls.play();
        }

        public void Stop()
        {
            sound.controls.stop();
        }

        public void Pause()
        {
            sound.controls.pause();
        }

        public void Resume()
        {
            if (sound.status == "Paused")
                sound.controls.play();
        }
    }
}

File Program.cs

using System;

namespace SoundAplication
{
    class Program
    {
        static void Main(string[] args)
        {
            SoundManager sound = new SoundManager("STDIO_Sound.wav");

            string cmd;
            cmd = Console.ReadLine();

            while (true)
            {
                if (cmd == "/play")
                {
                    sound.Play();
                    cmd = Console.ReadLine();
                }
                else if (cmd == "/pause")
                {
                    sound.Pause();
                    cmd = Console.ReadLine();
                }
                else if (cmd == "/resume")
                {
                    sound.Resume();
                    cmd = Console.ReadLine();
                }
                else if (cmd == "/stop")
                {
                    sound.Stop();
                    cmd = Console.ReadLine();
                }
                else
                    cmd = Console.ReadLine();
            }
        }
    }
}

Lời kết

Trên đây tôi đã hướng dẫn các bạn sử dụng thư viện WMPLib để thao tác cơ bản với âm thanh trong lập trình C#. Hy vọng kiến thức mà tôi truyền đạt trong bài viết này sẽ giúp ích cho việc giải quyết vấn đề về âm thanh trong dự án của các bạn, cảm ơn các bạn đã đọc bài viết này.