PDA

View Full Version : پخش صدا



roxana
شنبه 17 فروردین 1387, 14:19 عصر
با سلام خدمت همه دوستان. می خواستم بپرسم آیا کسی در مورد نحوه پخش صدا در محیط win ce اطلاع دارد؟ یعنی اگر بخواهم یک سری فایل mp3 را در برنامه ام بخوانم و پخش کنم، چطور می توانم اینکار را انجام دهم. اگر مقاله یا سورسی در این زمینه ارائه فرمایید ممنون می شوم.

reza6384
یک شنبه 18 فروردین 1387, 22:45 عصر
باید از یک کامپوننت مدیا پلیر یا Winamp استفاده کنید :

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=64938&SiteID=1

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1029646&SiteID=1

pd_ze62
یک شنبه 18 فروردین 1387, 22:55 عصر
msdn یه مقاله داره راجع به game programing برای smartphone که توی چند قسمت نوشتن یه بازی ساده واسه smartphone رو توضیح میده. توی قسمت دومش راجع به
sound effect توضیح داده، فک کنم به دردت بخوره.
این key word ها رو توی msdn سرچ کن، پیداش میکنی: game smartphone sound part two

عنوان کاملش هم اینه: Games Programming with Cheese: Part Two

massar
دوشنبه 27 مهر 1388, 13:18 عصر
این کلاس تو یه مقاله تو msdn هستش من اینجا pastش میکنم:



public class Sound
{
private byte[] m_soundBytes;
private string m_fileName;

private enum Flags {
SND_SYNC = 0x0000, /* play synchronously (default) */
SND_ASYNC = 0x0001, /* play asynchronously */
SND_NODEFAULT = 0x0002, /* silence (!default) if sound not found */
SND_MEMORY = 0x0004, /* pszSound points to a memory file */
SND_LOOP = 0x0008, /* loop the sound until next sndPlaySound */
SND_NOSTOP = 0x0010, /* don't stop any currently playing sound */
SND_NOWAIT = 0x00002000, /* don't wait if the driver is busy */
SND_ALIAS = 0x00010000, /* name is a registry alias */
SND_ALIAS_ID = 0x00110000, /* alias is a predefined ID */
SND_FILENAME = 0x00020000, /* name is file name */
SND_RESOURCE = 0x00040004 /* name is resource name or atom */
}

[DllImport("CoreDll.DLL", EntryPoint="PlaySound", SetLastError=true)]
private extern static int WCE_PlaySound(string szSound, IntPtr hMod, int flags);

[DllImport("CoreDll.DLL", EntryPoint="PlaySound", SetLastError=true)]
private extern static int WCE_PlaySoundBytes (byte[] szSound, IntPtr hMod, int flags);

/// <summary>
/// Construct the Sound object to play sound data from the specified file.
/// </summary>
public Sound (string fileName) {
m_fileName = fileName;
}

/// <summary>
/// Construct the Sound object to play sound data from the specified stream.
/// </summary>
public Sound(Stream stream) {
// read the data from the stream
m_soundBytes = new byte [stream.Length];
stream.Read(m_soundBytes, 0,(int)stream.Length);
}

/// <summary>
/// Play the sound
/// </summary>
public void Play () {
// if a file name has been registered, call WCE_PlaySound,
// otherwise call WCE_PlaySoundBytes
if (m_fileName != null)
WCE_PlaySound(m_fileName, IntPtr.Zero, (int) (Flags.SND_ASYNC | Flags.SND_FILENAME));
else
WCE_PlaySoundBytes (m_soundBytes, IntPtr.Zero, (int) (Flags.SND_ASYNC | Flags.SND_MEMORY));
}
}
اينجوريم باید ازش استفاده کنی:



// To return a Stream object associated with an embedded
// resource, you must prepend the namespace to the original
// name of the file in the project.
private void btnEmbedded_Click(object sender, System.EventArgs e) {
Sound sound = new Sound (Assembly.GetExecutingAssembly().GetManifestResour ceStream("SoundSample.chimes.wav"));
sound.Play();
}

private void btnFile_Click(object sender, System.EventArgs e) {
Sound sound = new Sound ("Program Files\\SoundSample\\chord.wav");
sound.Play();
}
اگه یه چیز حرفه‏ای می‏خوای باید از Directx و یا FMOD استفاده کنی. این کمک میکنه:
http://www.codeproject.com/KB/mobile/simple_mp3_player_for_ppc.aspx