PDA

View Full Version : پخش فایلهای صوتی بصورت پی در پی



nasseritemp
یک شنبه 06 دی 1388, 22:00 عصر
با سلام.
فرض کنید برای یک سیستم نوبت دهی می خواهیم فایلهای صوتی به ترتیب زیر پخش شوند:
1-فایلی که این پیام را پخش کند: شماره ی
2-فایلی که این پیام را پخش کند: بیست
3-فایلی که این پیام را پخش کند: و
4-فایلی که این پیام را پخش کند: پنج
5-فایلی که این پیام را پخش کند: باجه ی
6-فایلی که این پیام را پخش کند: سه

حال با فرض اینکه این فایلها وجود دارند لطفا چگونگی پخش پشت سر هم آنها را راهنمایی کنید. با تشکر

Computer.Programmer
دوشنبه 07 دی 1388, 11:29 صبح
شما می تونی از کامپوننت windows media player استفاده کنی. این کامپوننت رو می تونی در لیست رفرنس های COM پیداش کنی.
این کامپوننت برای زمانی که پخش یک فایل به اتمام میرسه یک رویدادی رو که اسم رویدادشو یام رفته رو اجرا می کنه. (اخه من از این برای ساخت تلفن گویا تقریبا دو سه سال پیش استفاده کرم). اگه مشکلی بود بگو.

موفق باشی

f.nabavi
دوشنبه 07 دی 1388, 11:37 صبح
سلام
از همون کامپوننت windows media player استفاده کن. این کامپوننت یک خاصیت به نام Playstate داره. اگر مقدار اون برابر با 8 یا WMPLib.WMPPlayState.wmppsMediaEnded باشه یعنی اجرای پخش فایل تموم شده و میتونی یه فایل دیگه رو بهش بدی که اجرا کنه. آدرس فایلی رو هم که میخوای پخش بشه در Url کامپوننت وارد میکنی.

nasseritemp
دوشنبه 07 دی 1388, 22:41 عصر
دوستان اگه مثالی در این مورد دارند لطفا دریغ نکنند.

nasseritemp
چهارشنبه 09 دی 1388, 22:15 عصر
مجددا از دوستان خواهش میکنم اگه مثالی در این مورد دارند به من کمک کنند.
با تشکر

Computer.Programmer
پنج شنبه 10 دی 1388, 00:00 صبح
با این مثالی که برات درست کردم مشکلت خل میشه.

موفق باشی

nasseritemp
شنبه 12 دی 1388, 22:04 عصر
با این مثالی که برات درست کردم مشکلت خل میشه.
دوست عزیز منظور من امکان پخش چند فایل صوتی پشت سر هم هست. یک چیزی شبیه PlayList

Computer.Programmer
یک شنبه 13 دی 1388, 14:27 عصر
دوست عزیز منظور من امکان پخش چند فایل صوتی پشت سر هم هست. یک چیزی شبیه PlayList

خوب اون مثال هم همین کارو می کنه دیگه. شما باید تمام مسیرهای فایل هایی رو که می خوای پخش بشن رو در یک آرایه نگه داری و سپس با هر بار اجرای رویداد Media Finished فایل بعدی رو پخش کنی.

موفق باشی

nasseritemp
یک شنبه 13 دی 1388, 23:24 عصر
خوب اون مثال هم همین کارو می کنه دیگه. شما باید تمام مسیرهای فایل هایی رو که می خوای پخش بشن رو در یک آرایه نگه داری و سپس با هر بار اجرای رویداد Media Finished فایل بعدی رو پخش کنی.

دوست عزیز ممنون از راهنماییتون ولی من نتونستم این کار رو انجام بدم. لطف کنید و یه مثال در این مورد ارائه کنید.

Computer.Programmer
دوشنبه 14 دی 1388, 11:36 صبح
برات تغییرات لازم رو دادم


موفق باشی

MahmoudiNik
دوشنبه 14 دی 1388, 12:52 عصر
سلام
من قبلا یه برنامه ی تبدیل عدد به حروف رو نوشته بودم و اونجا از کلاس
system.media استفاده کردم
و یه تابع داشتم که صدارو پخش میکرد البته الان برنامه همراهم نیست و گرنه براتون ارسال می کردم البته اگه کد های زیر درست باشن درست یادم نیست اما شبیه به همین هستش تابع به این صورته:

function ply(str path as string)
dim a as system.media.soundplayer
a.soundlocation=str
a.playsync
end function

همونطور که میبینید از playsyncاستفاده کردم که همون چیزی هستش که شما میخواهین و تو برنامه هم اینطوری ازش استفاده میکردم:
(ply(snd1): ply(snd2
که به ترتیب هم اجرا میشدند.
یاعلی. امیدوارم مشکلتون حل شه.

nasseritemp
دوشنبه 14 دی 1388, 18:31 عصر
برات تغییرات لازم رو دادم
ولی دوست عزیز فقط فایل اول رو پخش میکنه و بازهم مشکل من حل نشد

nasseritemp
چهارشنبه 16 دی 1388, 14:28 عصر
هیچ کدوم از اساتید نمیتونند مشکل منو حل کنند؟؟؟!!!!!!!!!!

Computer.Programmer
چهارشنبه 16 دی 1388, 14:47 عصر
ولی دوست عزیز فقط فایل اول رو پخش میکنه و بازهم مشکل من حل نشد

شما فایل dll مربوط به Media Player رو با MediaPlayer ویندوز خودت عوض کن و دوباره تست بگیر و نتیجه رو بگو.

موفق باشی

nasseritemp
چهارشنبه 16 دی 1388, 17:43 عصر
شما فایل dll مربوط به Media Player رو با MediaPlayer ویندوز خودت عوض کن و دوباره تست بگیر و نتیجه رو بگو.
میشه بیشتر توضیح بدید.
ببخشید این یه مورد اورژانسی و فوریه.

MahmoudiNik
پنج شنبه 17 دی 1388, 16:26 عصر
ولی دوست عزیز فقط فایل اول رو پخش میکنه و بازهم مشکل من حل نشد
سلام
آره اما من یادمه یه کاری کردم درست شد به نظر من می تونی آدرس فایلهاتو بزاری تو یه آرایه رشته ای و بعد با یک حلقه به ترتیب پخش کنی اونوقت فکر کنم موقعی که به خط مورد نظر برسه صبر کنه!

manifr
جمعه 09 بهمن 1388, 20:49 عصر
یکی از راه های پخش فایل های پشت سر هم ساختن پلی لیست توسط خود برنامه است.
میتونی با برنامه یک فایل m3u. درست کنی و با اکتیوکس مدیا پلیر بخونیش.
این کد شاید کمی کمکت کنه

Dim fso, MyFile
fso = CreateObject("Scripting.FileSystemObject")
Dim path As String
Dim i As Short, number As Short
Dim rand As New Random
Dim filepath As String
number = rand.Next(1, 9999)
filepath = System.Convert.ToString(number)
filepath = "c:\temp\art" & filepath & ".m3u"
MyFile = fso.CreateTextFile(filepath, True)
number = 1
For i = 1 To 495
number = i
path = System.Convert.ToString(number)
path = "YOUR MP3 FILES PATH" & path & ".mp3"
MyFile.WriteLine(path)
Next
MyFile.Close()
player.URL = filepath
player.Refresh()
fso = filepath
File.Delete(fso)

این کد ابتدا یه پلی لیست برات میسازه که توسط اکتیوکس مدیا پلیر بار گذاری می شه و بلافاصله بعد از اون فایل رو پاک میکنه.در صورتی که بخوای میتونی خود اکتیوکس رو هم مخفی کنی و به جاش از دکمه ها برای پخش استفاده کنی

Navid Asadi
شنبه 10 بهمن 1388, 11:08 صبح
آقا شما مگه مشکلت حل نشد...
شما به راحتی میتونی از خاصیت PlayStateChange استفاده کنی....
توش بنویس:
If e.newState = WMPLib.WMPPlayState.wmppsMediaEnded Then

end if

nasseritemp
سه شنبه 13 بهمن 1388, 18:08 عصر
آقا شما مگه مشکلت حل نشد...
شما به راحتی میتونی از خاصیت PlayStateChange استفاده کنی....


نه دوست عزیز مشکل من حل نشد.
شما هم بهتره ابتدا راه حلتون را با یه مثال پیاده سازی کنید بعد اینطور حق به جانب صحبت کنید. من منتظر مثال شما هستم.

Navid Asadi
سه شنبه 13 بهمن 1388, 20:01 عصر
آقا من دارم تو نرم افزارم ازش استفاده میکنم...
فکر کنم مشکل شما اینه که بعد از تغییر فایل Play نمیشه...
خوب اگه این طوره یک timer بساز و تو اون دستور Play رو بنویس وبعد از تغییر فایل timer رو فرا بخون...

Reza Safa
چهارشنبه 14 بهمن 1388, 07:55 صبح
http://barnamenevis.org/forum/showthread.php?t=91554
به این آدرس برو کارش هم راحتره و هم سورس داره

nasr
یک شنبه 02 خرداد 1389, 11:32 صبح
سلام

من نیاز به فایل صوتی "به باجه ی " دارم که گوینده آن خانم باشه

کسی داره کمک کنه؟

ممنون

rezaei manesh
یک شنبه 13 آذر 1390, 11:38 صبح
برات تغییرات لازم رو دادم


موفق باشی
سلام
مثال بالا از لحاظ کد نویسی به نظر مشکلی نداره اما من رو 2 تا سیستم، هم اکسپی و هم سون امتهان کردم فقط اولی رو پخش می کنه و دومی رو هم دستور play و فراخوانی می کنه اما صدا پخش نمی شه و ادامه رو هم نمیره!