PDA

View Full Version : اضافه کردن آهنگ به ListBox



hadi vafaii
شنبه 10 بهمن 1394, 01:51 صبح
سلام عرض میکنم خدمت دوستان
بنده میخوام یه مدیا پلیر درست کنم که به یه مشکل برخوردم و اینه که
میخوام به لیست باکسی که قرار دادم آهنگ اضافه کنم که آهنگ اول رو اضافه میکنه اما دومی رو که میخوام اضافه کنم اسم آهنگ رو میاره تو لیست اما میخواد اجرا کنه خطا میگیره میشه بگین مشکل از کجاست ؟ کدی رو هم که قرار دادم به این صورت هستش
و سوال دومم اینه که اگه بخوام وقتی به انتهای آهنگ رسید یا آخر لیست آهنگ ها رسید دوبار پخش کنه چجوری باید کدش رو بنویسم
الان وقتی آهنگ بعدی تموم میشه به آهنگ بعدی میره اما تکرار رو نمی دونم چجوره


string[] files;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
files = openFileDialog1.SafeFileNames;
puths = openFileDialog1.FileNames;



for (int d = 0; d < files.Length; d++)
{
listBox1.Items.Add(files[d]);
}

ژیار رحیمی
یک شنبه 11 بهمن 1394, 03:00 صبح
دوست گرامی شما در آرایه files فقط نام و پسوند فایل(ها)ی انتخابی(SafeFileName) رو در لیست باکس قرار میدی.موقع پخش باید مسیر فایل + نام و پسوند بصورت کامل داشته باشی(ّFileNames).شما به جای ریختن پراپرتی SafeFileNames مقدار پراپرتی FileNames رو در آرایه قرار بده

foreach (String file in openFileDialog1.FileNames)
listBox1.Items.Add(file);

hadi vafaii
یک شنبه 11 بهمن 1394, 04:00 صبح
دوست گرامی شما در آرایه files فقط نام و پسوند فایل(ها)ی انتخابی(SafeFileName) رو در لیست باکس قرار میدی.موقع پخش باید مسیر فایل + نام و پسوند بصورت کامل داشته باشی(ّFileNames).شما به جای ریختن پراپرتی SafeFileNames مقدار پراپرتی FileNames رو در آرایه قرار بده

foreach (String file in openFileDialog1.FileNames)
listBox1.Items.Add(file);


سلام ممنون از توجهتون اما استاد این کدی هست که من استفاده کردم تو قسمت اضافه کردن تو لیست

private void btnadd_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
wmp.currentPlaylist.clear();
listBox1.Items.Clear();
timer1.Enabled = false;
lblTime.Text = "00:00:00";
foreach (string filename in openFileDialog1.FileNames)
wmp.currentPlaylist.appendItem(wmp.newMedia(filena me));
wmp.Ctlcontrols.play();
int m = (int)wmp.currentMedia.duration;
int i = m / 60;
int s = m % 60;

files = openFileDialog1.SafeFileNames;
puths = openFileDialog1.FileNames;



for (int d = 0; d < files.Length; d++)
{
listBox1.Items.Add(files[d]);
}
label4.Text = wmp.currentPlaylist.count.ToString();
lblPlaylist.Visible = false;
}

}
تا اینجاش هیچ مشکلی نداره فقط من یه باتن دیگه هم میخوام قرار بدم تو فرم که مثلا کاربر که خواست مثل بقیه مدیاپلیر ها یک تک آهنگ جدید دیگه هم تو لیست اضافه کنه این امکان رو داشته باشه و مشکل از اینجا پدیدار میشه که خطا میده
بعد یکیدوتا سوال دیگه هم داشتم 1 . اینکه چجور میشه یه پلیر ساخت که لازم نباشه از دی ال ال خود ویندوز استفاده کرد یعنی از پایه خودمون بسازیم راهی هست ؟:متفکر:اگه آره چجوری مقاله یا سایتی سراغ دارین؟
2. چه کدی باید بنویسم که کاربر خواست یک آهنگ یا کل لیست دوباره تکرار بشه امکان پذیر باشه
3.آهنگ ها که به لیست باکس اضافه میشه دیدین که سایر مدیا پلیر ها وقتی میره رو آهنگ بعدی تو لیست هم میره رو اسم همون آهنگ چی کار کنم تو لیست حرکت کنه اتومات
ببخشین که سوالاتم زیاد بود

ژیار رحیمی
یک شنبه 11 بهمن 1394, 06:32 صبح
اگر کدی گذاشتی برای افزودن به لیست درست کار میکنه میتونی برای افزودن تک آهنگ هم استفاده کنی فقط سه خط کد

//wmp.currentPlaylist.clear();
//listBox1.Items.Clear();
//wmp.Ctlcontrols.play();


کامنت بزار.دلیل خطایی که بهت میده به نظر من شما یکی از آهنگ های لیست رو درحال پخش داری و وقتی لیست جاری میدیل پلیر رو Clear میکنی بهت خطا میده. دلیلی نداره شما یه دکمه اضافه جهت تک آهنگ بزاری وقتی از طریق OpenّFileDialog میتونی یک یا چند فایل رو انتخاب کنی چرا کد اضافه تر؟.لینک های زیر رو بررسی کن نمونه پیاده سازی میدیا پلیر هست امیدوارم راه گشا باشه.

دوست گرامی بدون کنترل wmp هم میشه نوشت با استفاده از DirectSound نوشت .چند نمونه لینک زیر رو بررسی کن.
http://www.codeproject.com/Articles/63094/Simple-MCI-Player
https://www.youtube.com/watch?v=o2K5N8meD90
http://www.codeproject.com/Articles/5556/DirectX-Get-Ambient-With-DirectSound
http://www.codeproject.com/Articles/2848/nBASS-A-sound-libary-for-NET

hadi vafaii
یک شنبه 11 بهمن 1394, 14:37 عصر
ببخشین اما مشکل حل نشده
همون کد هم اضافه میکنه به لیست باکس اما مشکل اینجاست که میخواد اجرا که کنه اجرا نمیکنه و خطا میگیره و خطاش هم مربوط به url هست که فکر کنم میگه url فایل نتخابی نیست