با سلام . آیا میشه بدون استفاده از axwindowsmedia ، (یا همون کامپوننت مدیا پلیر) آهنگ پخش کرد ؟
البته با فرمت MP3 . اگه امکانش هست ممنون میشم راهنماییم کنید . ممنون
با سلام . آیا میشه بدون استفاده از axwindowsmedia ، (یا همون کامپوننت مدیا پلیر) آهنگ پخش کرد ؟
البته با فرمت MP3 . اگه امکانش هست ممنون میشم راهنماییم کنید . ممنون
public class MP3Player
{
private string _command;
private bool isOpen;
[DllImport("winmm.dll")]
private static extern long mciSendString(string strCommand, StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback);
public void Close()
{
_command = "close MediaFile";
mciSendString(_command, null, 0, IntPtr.Zero);
isOpen = false;
}
public void Open(string sFileName)
{
_command = "open \"" + sFileName + "\" type mpegvideo alias MediaFile";
mciSendString(_command, null, 0, IntPtr.Zero);
isOpen = true;
}
public void Play(bool loop)
{
if (isOpen)
{
_command = "play MediaFile";
if (loop)
_command += " REPEAT";
mciSendString(_command, null, 0, IntPtr.Zero);
}
}
}
ممنون از راهنماییتون . اما وقتی این کد رو توی کلاس کپی می کنم ، خط زیر رو ارور میگیره :
[DllImport("winmm.dll")]
آیا باید رفرنسی اضافه کنم ؟ اگه ممکنه یه مثال attach می کردید ، خیلی خوب میشد !
using System.Runtime.InteropServices;
خیلی ممنون از راهنمایی شما . من برای پخش آهنگ های تک مشکلی ندارم ، اما برای پخش چند آهنگ مشکل دارم .
می خوام ، اسم اهنگ هایی که با file dialog انتخاب کردم رو توی لیست باکس نمایش بدم . به همین جهت هم این کد رو نوشتم .
listBox1.Items.Add(openFileDialog1.FileNames.ToStr ing());
اما توی لیست باکس این کد رو بهم میده .
system.string[]فکر کنم میگه باید اندیس بدی ، اما من بلد نیستم .
لطفاً راهنماییم کنید .
کسی نمیدونه؟
خسته نباشید
بابا نوشته برات که همش را
public void Open(string sFileName) {
_command = "open \"" + sFileName + "\" type mpegvideo alias MediaFile";
mciSendString(_command, null, 0, IntPtr.Zero);
isOpen = true;
}
sFileName ادرس فایلی هست که شما میخوای پخش بشه دیگه
استفاده میشه اینجوری مثلا
مثلا شما یک دکمه داری وقتی روش کلیک میکنی اینجوری میشه
این کد زیر کد همون دکمه باید باشه
private void button1_Click(object sender, EventArgs e)
{
Open(@"C:/myfile.mp3");
}
برای play و Stop هم اینجوری میشه
رو دکمه کلیک میکنی داخلش این کد را میزاری
برای play
Play(true);
برای Stop
Play(false);
برای بستنش هم اینجوریه
Close();
اول این که شما اومدی همه را به رشته تبدیل کردی !
بعد اول از همه این که فایل دیالوگت باید پروپرتی مولتی سلکشنش ترو باشه
بعد باید به صورت رنج اضافه کنی
یعنی اینجوری
listBox1.Items.AddRange(openFileDialog1.FileNames) ;
فایل نیمز خودش لیست از فایل هایی هست که شما انتخاب کردی چجوری میخوای به یدونه رشته تبدیلش کنی ؟ خوب باید ایندکس اون یدونه را بگذاری بعدش حالا به رشته هم تبدیل شد باز میشه 1 دونه که...
نمیدونم کد را ببین متوجه میشی
این الان به صورت کلاس بود
احتمالا استفاده از کلاس را هم بلد نیستید لذا اینجوری کپی کن تو فرم اصلیت
private string _command;
private bool isOpen;
[DllImport("winmm.dll")]
private static extern long mciSendString(string strCommand, StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback);
public void Close()
{
_command = "close MediaFile";
mciSendString(_command, null, 0, IntPtr.Zero);
isOpen = false;
}
public void Open(string sFileName)
{
_command = "open \"" + sFileName + "\" type mpegvideo alias MediaFile";
mciSendString(_command, null, 0, IntPtr.Zero);
isOpen = true;
}
public void Play(bool loop)
{
if (isOpen)
{
_command = "play MediaFile";
if (loop)
_command += " REPEAT";
mciSendString(_command, null, 0, IntPtr.Zero);
}
}