PLSound.cs
2.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace GeneralLib
{
public class PLSound
{
class PlayForm
{
public string path = "";
public FrmPLSound frmSound = null;
}
private Dictionary<string, PlayForm> KeyPath = null;
public PLSound()
{
KeyPath = new Dictionary<string, PlayForm>();
}
public bool InitSound(Control owner)
{
return true;
}
public void LoadSound(string key, string filePath, int mixCount)
{
LoadSound(key, filePath);
}
public void LoadSound(string key, string filePath)
{
PlayForm playForm = new PlayForm();
playForm.path = filePath;
//playForm.frmSound = new FrmPLSound();
KeyPath.Add(key, playForm);
}
public void RemoveSound(string key)
{
Stop(key);
if (KeyPath.ContainsKey(key))
{
if (KeyPath[key].frmSound != null)
KeyPath[key].frmSound.Close();
KeyPath.Remove(key);
}
}
public void RemoveSoundAll()
{
StopAll();
foreach (string key in KeyPath.Keys)
{
if (KeyPath[key].frmSound != null)
KeyPath[key].frmSound.Close();
}
KeyPath.Clear();
}
private void PlayMusic(string key, bool isLoop)
{
try
{
string path = "";
if (KeyPath.ContainsKey(key))
path = KeyPath[key].path;
else
return;
if (KeyPath[key].frmSound == null) KeyPath[key].frmSound = new FrmPLSound();
KeyPath[key].frmSound.Play(key, path, isLoop);
}
catch (Exception ex)
{
SystemLog.WriterLog(ex);
}
}
public void Play(string key)
{
PlayMusic(key, false);
}
public void PlayLoop(string key)
{
PlayMusic(key, true);
}
public void Stop(string key)
{
if (KeyPath.ContainsKey(key))
{
if (KeyPath[key].frmSound != null)
KeyPath[key].frmSound.Stop(key);
}
}
public void StopAll()
{
foreach (string key in KeyPath.Keys)
{
Stop(key);
}
}
}
}