Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 23 kết quả

Đề tài: Chơi nhạc .mp3 trong winform như thế nào?

  1. #1
    Ngày gia nhập
    05 2011
    Bài viết
    78

    Mặc định Chơi nhạc .mp3 trong winform như thế nào?

    Code:
            private void Form1_Load(object sender, EventArgs e)
            {
                //SoundPlayer soundP = new SoundPlayer("The-Winner-Takes-It-All- ABBA.mp3");  ----LOI
                SoundPlayer soundP = new SoundPlayer("The-Winner-Takes-It-All- ABBA.wav");//-----ok
                soundP.Play();
            }
    System.media của winform chỉ hỗ trợ chơi nhạc wav, làm sao để chơi nhạc mp3 hoặc nhạc có định dạng khác? Mong mọi người giúp đỡ. Thanks all.
    Đã được chỉnh sửa lần cuối bởi hu-xeko : 08-12-2011 lúc 09:36 AM.

  2. #2
    Ngày gia nhập
    11 2008
    Nơi ở
    An Giang
    Bài viết
    502

    Bạn sử dụng Control Window Media Player nha.
    Nhớ Add thư viện WMP vào toolbox rùi kéo nó ra.

  3. #3
    Ngày gia nhập
    05 2011
    Bài viết
    78

    Thế là phải dùng giao diện giống window media để phát nhạc hở bạn?

  4. #4
    Ngày gia nhập
    04 2009
    Nơi ở
    Gầm cầu
    Bài viết
    2,230

    SoundPlayer chỉ chơi định dạng wav
    bạn có thể dùng wmp com mà .net hỗ trợ sẵn hoăc dùng hàm window api

  5. #5
    Ngày gia nhập
    05 2011
    Bài viết
    78

    Code:
            private void Form1_Load(object sender, EventArgs e)
            {
    
                WMPLib.WindowsMediaPlayer wmplayer = new WMPLib.WindowsMediaPlayer();
                wmplayer.URL = "WeWishYouAMerryChristmas_Piano.mp3";
                wmplayer.controls.play();
    
                //SoundPlayer soundP = new SoundPlayer("WeWishYouAMerryChristmas_Piano.wav");
                //soundP.PlayLooping();
            }
    Không biết sao khi chạy nó chỉ chạy được vài giây là tắt ngấm. Trong khi mình dùng window media player mở thì nghe được hết cả bài? Mọi người giúp mình với.

  6. #6
    Ngày gia nhập
    04 2009
    Nơi ở
    Gầm cầu
    Bài viết
    2,230

    Mặc định Chơi nhạc .mp3 trong winform như thế nào?

    Trích dẫn Nguyên bản được gửi bởi hu-xeko Xem bài viết
    Code:
            private void Form1_Load(object sender, EventArgs e)
            {
    
                WMPLib.WindowsMediaPlayer wmplayer = new WMPLib.WindowsMediaPlayer();
                wmplayer.URL = "WeWishYouAMerryChristmas_Piano.mp3";
                wmplayer.controls.play();
    
                //SoundPlayer soundP = new SoundPlayer("WeWishYouAMerryChristmas_Piano.wav");
                //soundP.PlayLooping();
            }
    Không biết sao khi chạy nó chỉ chạy được vài giây là tắt ngấm. Trong khi mình dùng window media player mở thì nghe được hết cả bài? Mọi người giúp mình với.
    nó có báo exception gì ko bạn

  7. #7
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    T dùng cái Mp3Helper nhàn lắm: Nó cung cấp sẵn: play,stop,pause rồi.
    Visual C# Code:
    1. cách dùng:
    2.   private void PlayMusic()
    3.         {
    4.             string strFileName = Path.GetFullPath("Music.mp3");
    5.             QSoft.MP3Helper.Play(strFileName, true);//true: Chơi lại khi hết bài hát.
    6.         }
    7.  
    8. //----------------Mp3Helper----------
    9. using System;
    10. using System.IO;
    11. using System.Runtime.InteropServices;
    12.  
    13. namespace QSoft
    14. {
    15.     class MP3Helper
    16.     {
    17.         [DllImport("winmm.dll")]
    18.         private static extern long mciSendString(string strCommand, System.Text.StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback);
    19.        
    20.         public static void Play(string MP3_FileName,bool Repeat)
    21.         {
    22.             mciSendString("open \"" + MP3_FileName + "\" type mpegvideo alias MediaFile", null, 0, IntPtr.Zero);
    23.             mciSendString("play MediaFile" + (Repeat ? " repeat" :String.Empty), null, 0, IntPtr.Zero);
    24.         }
    25.         public static void Play(byte[] MP3_EmbeddedResource, bool Repeat)
    26.         {
    27.             extractResource(MP3_EmbeddedResource, Path.GetTempPath() + "resource.tmp");
    28.             mciSendString("open \"" + Path.GetTempPath() + "resource.tmp" + "\" type mpegvideo alias MediaFile", null, 0, IntPtr.Zero);
    29.             mciSendString("play MediaFile" + (Repeat ? " repeat" : String.Empty), null, 0, IntPtr.Zero);
    30.         }
    31.  
    32.         public static void Pause()
    33.         {
    34.             mciSendString("stop MediaFile", null, 0, IntPtr.Zero);
    35.         }
    36.  
    37.         public static void Stop()
    38.         {
    39.             mciSendString("close MediaFile", null, 0, IntPtr.Zero);
    40.         }
    41.  
    42.         private static void extractResource(byte[] res,string filePath)
    43.         {
    44.             FileStream fs;
    45.             BinaryWriter bw;
    46.  
    47.             if (!File.Exists(filePath))
    48.             {
    49.                 fs = new FileStream(filePath, FileMode.OpenOrCreate);
    50.                 bw = new BinaryWriter(fs);
    51.  
    52.                 foreach (byte b in res)
    53.                     bw.Write(b);
    54.  
    55.                 bw.Close();
    56.                 fs.Close();
    57.             }
    58.         }
    59.     }
    60. }
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

  8. #8
    Ngày gia nhập
    05 2011
    Bài viết
    78

    nó có báo exception gì ko bạn
    Không bạn à, mình cũng thử bắt lỗi mà cũng không có hiện tượng, những thứ khác trong chương trình vẫn chạy, chi nhạc là không phát thôi ???

    Còn mình dùng cách của MrFour.It thì bị lỗi ngay vị trí này
    Code:
                mciSendString("open \"" + MP3_FileName + "\" type mpegvideo alias MediaFile", null, 0, IntPtr.Zero);
                mciSendString("play MediaFile" + (Repeat ? " repeat" :String.Empty), null, 0, IntPtr.Zero);
    Mong các bạn giúp đỡ, mình phải hoàn thiện trước noel . Thanks all

  9. #9
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Trích dẫn Nguyên bản được gửi bởi hu-xeko Xem bài viết
    Không bạn à, mình cũng thử bắt lỗi mà cũng không có hiện tượng, những thứ khác trong chương trình vẫn chạy, chi nhạc là không phát thôi ???

    Còn mình dùng cách của MrFour.It thì bị lỗi ngay vị trí này
    Code:
                mciSendString("open \"" + MP3_FileName + "\" type mpegvideo alias MediaFile", null, 0, IntPtr.Zero);
                mciSendString("play MediaFile" + (Repeat ? " repeat" :String.Empty), null, 0, IntPtr.Zero);
    Mong các bạn giúp đỡ, mình phải hoàn thiện trước noel . Thanks all
    File Nhạc đó bạn để đâu. Ví dụ t cho bạn xem là t để ở trong Debug mới lấy đường dẫn kiểu đó. Trường hợp khác thì bạn phải xem đường dẫn chuẩn chưa. Cái code đó t chạy ngon lành.
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

  10. #10
    Ngày gia nhập
    05 2011
    Bài viết
    78

    Mình để file nhạc trong Debug/bin thì mình code như thế này có đúng không bạn?
    Code:
            private void Form1_Load(object sender, EventArgs e)
            {
                //SoundPlayer soundP = new SoundPlayer("WeWishYouAMerryChristmas_Piano.wav");
                //soundP.PlayLooping();
                bool Repeat=true;
                mciSendString(@"open \WeWishYouAMerryChristmas_Piano.mp3\ type mpegvideo alias MediaFile", null, 0, IntPtr.Zero);
                mciSendString("play MediaFile" + (Repeat ? " repeat" : String.Empty), null, 0, IntPtr.Zero);
            }
    Nó chỉ chạy mà không phát nhạc bạn à :(

    Còn làm thế này
    Code:
            private void Form1_Load(object sender, EventArgs e)
            {
                //SoundPlayer soundP = new SoundPlayer("WeWishYouAMerryChristmas_Piano.wav");
                //soundP.PlayLooping();
                bool Repeat=true;
                string MP3_FileName = Path.GetFullPath("WeWishYouAMerryChristmas_Piano.mp3");
                mciSendString("open \"" + MP3_FileName + "\" type mpegvideo alias MediaFile", null, 0, IntPtr.Zero);
                mciSendString("play MediaFile" + (Repeat ? " repeat" : String.Empty), null, 0, IntPtr.Zero);;
            }
    Thì chương trình không báo lỗi gì, mà hiện lên dòng Close program (lỗi của window 7)
    Đã được chỉnh sửa lần cuối bởi hu-xeko : 10-12-2011 lúc 01:27 PM.

Các đề tài tương tự

  1. nhập ma trận trong winform C# như thế nào?
    Gửi bởi kokoromap trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 23
    Bài viết cuối: 15-03-2013, 06:49 PM
  2. Nhập code vào winform C# như thế nào?
    Gửi bởi kiaconchim trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 9
    Bài viết cuối: 11-10-2011, 12:03 AM
  3. Kỹ thuật C++ Winform C++ | Tạo module xử lý giao diện Winform trong C++ như thế nào?
    Gửi bởi likhungma trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 04-10-2011, 05:45 PM
  4. [Thắc Măc] Làm sao đăng nhập vào web bằng WinForm
    Gửi bởi LOVEAi trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 25-05-2011, 10:39 AM
  5. Làm thế nào để chơi nhạc trong winform?
    Gửi bởi sasadudu trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 15-12-2010, 03:26 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn