找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1350|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

c#播放MP3源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:484053 發(fā)表于 2019-3-4 09:55 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
c# 調(diào)用winmm.dll 播放mp3
  1. using System;
  2. using System.IO;
  3. using System.Runtime.InteropServices;
  4. using System.Threading;
  5. using System.Windows.Forms;

  6. namespace DMS
  7. {
  8.     // Token: 0x02000016 RID: 22
  9.     public static class MP3Player
  10.     {
  11.         // Token: 0x060000F8 RID: 248 RVA: 0x00027F08 File Offset: 0x00026108
  12.         private static void PlayWait(string file)
  13.         {
  14.             bool flag = !File.Exists(file);
  15.             if (!flag)
  16.             {
  17.                 MP3Player.mciSendString(string.Format("open \"{0}\" type mpegvideo alias media", file), null, 0, 0);
  18.                 MP3Player.mciSendString("play media wait", null, 0, 0);
  19.                 MP3Player.mciSendString("close media", null, 0, 0);
  20.             }
  21.         }

  22.         // Token: 0x060000F9 RID: 249 RVA: 0x00027F58 File Offset: 0x00026158
  23.         private static void PlayRepeat(string file)
  24.         {
  25.             bool flag = !File.Exists(file);
  26.             if (!flag)
  27.             {
  28.                 MP3Player.mciSendString(string.Format("open \"{0}\" type mpegvideo alias media", file), null, 0, 0);
  29.                 MP3Player.mciSendString("play media repeat", null, 0, 0);
  30.             }
  31.         }

  32.         // Token: 0x060000FA RID: 250 RVA: 0x00027F98 File Offset: 0x00026198
  33.         public static void Play(string file, int times)
  34.         {
  35.             bool flag = file.Trim() == "";
  36.             if (!flag)
  37.             {
  38.                 bool flag2 = file.Contains("..\\");
  39.                 if (flag2)
  40.                 {
  41.                     file = Application.StartupPath + file.Substring("..".Length);
  42.                 }
  43.                 DataManageInfo.IsPlaying = 0;
  44.                 bool flag3 = !File.Exists(file);
  45.                 if (!flag3)
  46.                 {
  47.                     DataManageInfo.IsPlaying = 1;
  48.                     MP3Player.thread = new Thread(delegate ()
  49.                     {
  50.                         bool flag4 = times == 0;
  51.                         if (flag4)
  52.                         {
  53.                             MP3Player.PlayRepeat(file);
  54.                         }
  55.                         else
  56.                         {
  57.                             bool flag5 = times > 0;
  58.                             if (flag5)
  59.                             {
  60.                                 int num;
  61.                                 for (int i = 0; i < times; i = num + 1)
  62.                                 {
  63.                                     MP3Player.PlayWait(file);
  64.                                     num = i;
  65.                                 }
  66.                             }
  67.                         }
  68.                         while (DataManageInfo.IsPlaying == 1)
  69.                         {
  70.                             Thread.Sleep(100);
  71.                         }
  72.                         MP3Player.mciSendString("stop media", null, 0, 0);
  73.                         MP3Player.mciSendString("close media", null, 0, 0);
  74.                         DataManageInfo.IsPlaying = 0;
  75.                     });
  76.                     MP3Player.thread.SetApartmentState(ApartmentState.STA);
  77.                     MP3Player.thread.IsBackground = true;
  78.                     MP3Player.thread.Start();
  79.                 }
  80.             }
  81.         }

  82.         // Token: 0x060000FB RID: 251 RVA: 0x0002806C File Offset: 0x0002626C
  83.         public static void Stop()
  84.         {
  85.             bool flag = MP3Player.thread != null;
  86.             if (flag)
  87.             {
  88.                 try
  89.                 {
  90.                     DataManageInfo.IsPlaying = 2;
  91.                     while (DataManageInfo.IsPlaying == 2)
  92.                     {
  93.                         Thread.Sleep(100);
  94.                     }
  95.                     MP3Player.thread.Abort();
  96.                 }
  97.                 catch
  98.                 {
  99.                 }
  100.                 MP3Player.thread = null;
  101.             }
  102.         }

  103.         // Token: 0x060000FC RID: 252
  104.         [DllImport("winmm.dll", CharSet = CharSet.Auto)]
  105.         private static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback);


  106.         // Token: 0x04000227 RID: 551
  107.         private static Thread thread;
  108.     }
  109. }
復(fù)制代碼


MP3Player.rar

1.04 KB, 下載次數(shù): 11, 下載積分: 黑幣 -5

c#播放MP3的類(lèi)庫(kù)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表