PDA

View Full Version : dll کردن mp3



Reza,M
دوشنبه 31 تیر 1392, 15:21 عصر
چطور میشه فایل های mp3 رو dll کرد و ازشون استفاده کرد؟

plus
دوشنبه 31 تیر 1392, 19:05 عصر
شما چه استفاده ای میتونید از یک mp3 که dll شده بکنید؟ چه dll ی میخواین باشه؟ اگه صرفا هدفتون، نگه داری یک فایل mp3 در قالب یک dll هست، میتونید اون رو در یک پروژه class library به صورت یک resource ذخیره کنید و با یک متد برگردونید.

sohil_ww
دوشنبه 31 تیر 1392, 19:15 عصر
چطور میشه فایل های mp3 رو dll کرد و ازشون استفاده کرد؟

شما می خوای فایل mp3 به 1 فایل dll تبدیل کنی (این سئوال خودم چرا همچین کاری می خواید بکنید )؟

بعد اون فایل dll می خواید تو برنامه خودتون اجرا کنید ؟!

Reza,M
دوشنبه 31 تیر 1392, 22:45 عصر
میتونید اون رو در یک پروژه class library به صورت یک resource ذخیره کنید و با یک متد برگردونید.
همین کار رو هم کردم ولی نمیدونم با چه متدی برگردونم؟
برای پخش فایل ها از


class Sound
{
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);
}
}


استفاده میکنم
مشکلم فراخوانی فایل مورد نظره

plus
دوشنبه 31 تیر 1392, 22:51 عصر
وقتی شما فایل رو به Resource پروژه اضافه میکنید، اونه تحت عنوان یک آرایه byte به شما میده، شما هم میتونید به عنوان یک آرایه بایت اون فایل رو ارائه بدین.البته بازم بستگی به هدفتون داره.

public byte[] Mp3File()
{
return Properties.Resources.MyMp3File;
}

sohil_ww
دوشنبه 31 تیر 1392, 23:23 عصر
دوست عزیز من وقتی سئوالتو دیدم به دنبال حلش رفتم تا 1 جایی پیش رفتم ولی بعدش سطح سوادم دیگه اجازه نداد ادامه بدم
برنامه رو می زارم برات تا شاید به کارت بیاد و بتونی تمومش کنی و ممنون میشم که اگر خودت یا اساتید دیگه تمومش کردن تو همین تایپک بزارن تا بچه های دیگه هم استفاده کنن

سورس (http://uplod.ir/kahayg552yq5/mp3_to_dll.zip.htm)

Reza,M
سه شنبه 01 مرداد 1392, 00:08 صبح
وقتی شما فایل رو به Resource پروژه اضافه میکنید، اونه تحت عنوان یک آرایه byte به شما میده، شما هم میتونید به عنوان یک آرایه بایت اون فایل رو ارائه بدین.البته بازم بستگی به هدفتون داره.

public byte[] Mp3File()
{
return Properties.Resources.MyMp3File;
}

ولی مسیر فایل از نوع رشته اس که؟؟؟

Reza,M
سه شنبه 01 مرداد 1392, 13:51 عصر
راهی نیست؟؟؟

Reza,M
سه شنبه 01 مرداد 1392, 16:53 عصر
دوستان خواهشا جواب بدید. چطور mp3 که درون resource هستش رو میتونم اجرا کنم؟:عصبانی++:

plus
سه شنبه 01 مرداد 1392, 18:46 عصر
آدرسی وجود نداره.شما یک DLL داری که فایل MP3 در یک قسمتش قرار گرفته.اگر میخوای فایل DLL رو به عنوان یک MP3 به نرم افزار دیگه بدی، تا زمانی که اون نرم افزار برای این کار (در آوردن MP3 از Resource فایل DLL) طراحی نشده باشه، نمیتونی اینکار رو بکنی.

hojjatshariffam
سه شنبه 01 مرداد 1392, 19:24 عصر
درسته تو از یه dll برای پخش فایل استفاده کردی به اسم winmm که مربوط میشه به پخش که ورودی ادرس میگیره
شما فایل رو تبدیل به دیتا کردی و گزاشتی داخل dll و الان می خوای بازم بخونی
خب مسلمه که دیگه ادرسی نداری که بدی به اون متد
ایندفه باید از یه روش دیگه برای پخشش استفاده کنی
1 ) یا باید داده هاتو بریزی تو یه فایل (از طریق یه استریم ) و بعد آدرس فایلو بدی
2 ) یا اینکه از متد دیگه ای برا پخش استفاده کنی
من از این winmm استفاده نکردم ، نیم دونم متد دیگه ای و یا اوور راید دیگه ای از اون متد برای پخش داده داره یا نه(در این مورد جستجو کنید)

Reza,M
سه شنبه 01 مرداد 1392, 23:43 عصر
1 ) یا باید داده هاتو بریزی تو یه فایل (از طریق یه استریم ) و بعد آدرس فایلو بدی فایل های mp3 من تو resourceیک class library هستن چطور میتونم این کار رو انجام بدم؟
یه چیزی مثل این دستور میخوام:
System.IO.File.WriteAllBytes(@"D:\\01.mp3", Properties.Resources._01);
که از تو resource اون class library این کار رو انجام بده
:اشتباه:

pikalo
چهارشنبه 02 مرداد 1392, 19:11 عصر
ابتدا فایل فیزیکی موقت ازش بساز و بعد پاکش کن.

WindowsMediaPlayer wmp = new WindowsMediaPlayer();
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourc eStream("PostGen.Resources.Kalimba.mp3");
using (Stream output = new FileStream ("C:\\temp.mp3", FileMode.Create)) { byte[] buffer = new byte[32*1024]; int read;
while ( (read= stream.Read(buffer, 0, buffer.Length)) > 0) { output.Write(buffer, 0, read); } } wmp.URL = "C:\\temp.mp3";
wmp.controls.play();


private void Form1_FormClosing(object sender, FormClosingEventArgs e) { File.Delete("C:\\temp.mp3"); }

Reza,M
چهارشنبه 02 مرداد 1392, 22:11 عصر
دوست عزیز pikalo (http://barnamenevis.org/member.php?156721-pikalo)
انجام نشد:اشتباه:
سوال رو اینجا (http://barnamenevis.org/showthread.php?410406-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%85%D9%88%D8%AC%D9%88%D8%AF-%D8%AF%D8%B1-DLL) هم مطرح کردم.