همزمان کردن صدای خارجی با انیمیشن

yoosofy

New Member
سلام
مشکل من
یک کاراکتر دارم که صداش باید به صورت stream لود بشه ولی مشکلی که دارم نمی تونم صدا و انیمیشن رو همزمان کنم .
یعنی یک انیمیشن با تعداد 1000 فریم با یک موزیک هماهنگ شده، ولی وقتی صدا به صورت stream لود میشه انیمیشن و صدا هماهنگی خودشون رو از دست میدن
خوب من میخوام هر گاه صدا قطع می شود تا کمی لود بشه، انمیشن هم stop کند و دوباره که صدا شروع به پخش شد انمیشن هم با آن حرکت کند

در ضمن من کمی هم طلاعات دارم که استادا می تونن ازش استفاده کنند برای حل این مشکل

صدا دو ویژگی داره
duration که کل میلی ثانیه های صدا رو اندازه می گیره
position تعداد میلی ثانیه های صدا رو اندازه می گیره

یک نمونه کد که انمیشن و صدا رو همزمان کرده ولی نه اون چیزی که من می خوام
mySound = new Sound();
mySound.loadSound("sound.mp3,true);
_root.onEnterFrame = function() {
image._alpha = (mySound.Position/mySound.duration)*100;
};

خوب ما در اینجا یک movie clip به نام image داریم که هنگامیکه صدا در حال پخش هست نسبت به طول پخش صدا شفافیت آن کاهش و کم کم همگام با آهنگ آشکارتر می شود یعنی پس از اتمام آهنگ تصویر نیز آشکار شده است

یک راه حل هم دارم ولی نحوه حل و اسکریپت نویسیش رو نمی دونم
فرض می کنیم
یک انمیشن 1 دقیقه ای با تعداد فریم 1000 که حجمش 300 کیلوبایت بدون صدا میشه و یک صدای 1 دقیقه ای که حجمش 700 کیلو بایته
خوب برای حالت stream از فرمت mp3 استفاده می شه که من کیفیت صدای این شخصیت رو روی 8kbps تنظیم کردم خوب حالا اگر پهنای باند 1 کیلو بایت در ثانیه باشه صدا بدون هیچ ایستی پخش خواهد شد

خوب ابتدا انیمیشن رو لود کنیم که با ProgressBar درصد روند لود شدن رو نشون می دیم پس از اتمام، انیمیش شروع و صدا که به صورت stream هست شروع به لود شدن می کند
و چون قبلا انیمیشن لود شده در اینجا پهنای باند فقط برای صدا استفاده می شه که وقفه ای به وجود نمی یاد

خوب من می خوام یک شرط بذارم که چند ثانیه از لود شدن صدا بگذره و سپس انیمیشن و صدا شرع به حرکت کنند

خوب این یک راه حل هست
اما اگه لحضه ای پهنای کم بیاره و صدا قطع بشه انیمیشن به حرکت خودش ادامه و هماهنگی خودشون رو از دست میده

کسی می تونه کمک کنه
 

MAJOR

Well-Known Member
شما می تونی از بافر استفاده کنی و صدا رو 5 ثانیه زود تر لود کنی و اجراش رو با تصویر در صورتی که پهنا کم شد صدا رو از بافر می خونه
 

CMAX

Member
سلام
ساده ترین را برای سینک کردن صدا و انیمیشن و نه بهترین راه اینه
که زمانی که صدا پخش شود انیمیشن هم حرکت کند تا با هم سینک
باشند اگر چه پیشنهاد می کنم کلا از FLV استفاده کن تا نتیجه دلخواه
بدست بیاد یا منتظر Action Script 3.0 باش :wink:
OK


انیمیشن -->MCr_
تکست باکس -->sT_
تکست باکس -->BL_
صدای انیمیشن -> Mp3 _


کد:
_Mp3 = "Evanescence - Fallen - Everybodys Fool.mp3";
_soundbuftime = 10;//Yor Favoit Time, Cahnege it to Enhance Your Movie
_Snd = new Sound();
_Snd.onLoad = function(SuK)
{
	(SuK) ? (_sT="SouNd LoaDed") : (_sT="ErroR iN Opening MeDia");
};
_Snd.onSoundComplete = function()
{
	clearInterval(_Intv);
	_sT = ("SounD ComPletEd");
	//Do WhaT You WanT 
};
_Snd.loadSound(_Mp3, true);
_Intv = setInterval(ChkPly, 100, _Snd);
function ChkPly(_TSnd)
{
	(_pOs<_TSnd.position) 
	? 
	(_MCr.play(), _sT="It'S PLaYinG FoR You ...") 
	: (_MCr.stop(), _sT="Wait fOr buFfeRinG ...");
	_pOs = _TSnd.position;
	_BL = (_pOs+" byte From SouNd SiZe & "+
	Math.round(_TSnd.position/_TSnd.duration*100)+
	"% Played From BuFferd DaTa");
}


این فقط یک ایده بود خودت کاملش کن
تو حالتSimulate Download میتونی Test کنی
موفق باشی.
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا