בעיה קטנה עם טעינת מוזיקה

בעיה קטנה עם טעינת מוזיקה

אני מפעיל את הסקריפט
mySound = new Sound(this); mySound.loadSound("1.mp3", false); mySound.start(0, 99);​
שהוא תקין לחלוטין אבל המוזיקה איננה מתחילה להתנגן. מבדיקה מסתבר כי פקודת הסטרט ניתנת כשהקובץ עדיין לא ניטען במלואו. אם אני שם פקודה זו כמה פריימים לאחר מכן אז העסק עובד. מישהו מכיר פרילאודר של מוזיקה שמבטיח כי מיד לאחר הטעינה מתבצעת פקודת הסטארט?
 

IReI

New member
גם אני עם אותה בעיה ../images/Emo122.gif

מה שעשיתי זה ככה:
bgSound = new Sound("Music_holder"); bgSound.loadSound("loop 2.mp3", isStreaming); bt = bgSound.getBytesTotal() bl = bgSound.getBytesLoaded(); if (bl == bt) { trace(bt); bgSound.start(0,999) }​
אבל עדיין זה עובד לי רק בבדיקה על המחשב, ברגע שאני מעלה את זה לשרת זה לא מנגן. אם תמצא פתרון אשמח לראות
 
הבעיה היא ברשת

מאחר שלוקח זמן לטעון התברר לי כי המוזיקה מתנגנת כאשר מגדירים אותה כ true אבל רק סיבוב אחד ומתעלמת מהגדרת הלופ (ראה את הסקריפט המקורי שלי)
mySound = new Sound(this); mySound.loadSound("1.mp3", true);​
וכדי שיתקיים לופ(מוזיקה מתמשכת) השתמשתי בפקודה onSoundComplete ושם הוא יוצר את המוזיקה האינסופית
 

bnayal

New member
אני אגיד לך למה על השרת זה לא עובד.

כי את הבדיקת IF שבודקת האם כל הקובץ נטען אתה בודק רק פעם אחת ולכן על המחשב שלך זה מיד נטען ועל השרת בIF זה עדיין לא הספיק להטען. יש לשים את התנאי שבודק האם כל הקובץ נטען בתוך interval כלשהו או בתוך onEnterFrame כלשהו. בהצלחה
 
הבדיקה הזו מיותרת

מצורף משהו בלי כל בדיקה אני מתגעגע לפלאש 5 שם שמנו את קובץ המוזיקה ישירות בפלאש וזה עבד בלי כל הסקריפטים שלפעמים משגעים את הבנאדם
 
סקריפט לא פשוט

את השלד שלו קיבלתי ברשת וביצעתי כמה שיפורים. אין פרילאודר והוא מתחיל להתנגן לאחר שנטען וכל פעם שהמוזיקה נגמרת מתחיל סיבוב חדש כל הסקריפט במקום אחד, יש רק פריים אחד עם עוד כמה ליירים שמחזיקים את הלחצנים. נסה אותו.
/----------------<sound initialization>-------------------\\ var curTrackNum:Number = 0; var bgMusak:Sound; playMusak(); // buffer 10 seconds of audio before playing the music (the default is 5) _soundbuftime = 10; // autosize some text fields this.helpBubble.autoSize = "center"; this.trackInfo.autoSize = "left"; this.musakVolumeMC.volumeTxt.autoSize = "left"; totalTracks=3 ; //----------------</sound initialization>-------------------\\ //----------------<sound setup AS>-------------------\\ function stopMusak() { delete bgMusak }; function playMusak() { // create a new Sound object named "bgMusak" bgMusak = new Sound(); bgMusak.onID3 = function() { trackInfo.text = "track : " + bgMusak.id3.TIT2; }; bgMusak.onSoundComplete = function() { playMusak(); }; bgMusak.onLoad = function(success){ if(!success){ trackInfo.text = "Failed To Load Track."; } } if (curTrackNum == 0) { bgMusak.loadSound("http://www.chennaionline.com/mp3/jmp3/Chikku_Pukku_Raile_Remixed_By_Jawahar.mp3", true);} else if (curTrackNum == 1) { bgMusak.loadSound("http://www.chennaionline.com/mp3/jmp3/kannai~1.mp3", true);} else { bgMusak.loadSound("http://www.chennaionline.com/mp3/jmp3/Uyire_Uyire_Remixed_By_Jawahar.mp3", true);} }; //----------------</sound setup AS>-------------------\\ //----------------<next track AS>-------------------\\ this.nextTrackBtn.onRollOver = function() { helpBubble.text = "next track"; }; this.nextTrackBtn.onRollOut = function() { helpBubble.text = ""; }; this.nextTrackBtn.onRelease = function() { if (curTrackNum == (totalTracks - 1)) { curTrackNum = 0; } else { curTrackNum ++; } stopMusak(); playMusak(); this.musakToggle.gotoAndStop(2); };​
 
זה סתם בילבול מוח

אני מציע שוב לא להסתבך עם פרילאודרים וכו' אני רוצה להזכיר כי ניתן להטמיע import את קובץ ה MP3 ולכן מוצעת שיטה פשוטה ואמינה מכניסים קובץ מוזיקה לתוך פלאש - בקיפריים הראשון סטופ והמוזיקה בקיפריים השני את זה טוענים לתוך המנוע ב loadMovie וכאשר רוצים שהמוזיקה תתנגן נותנים פקודה לעובר לפריים השני בצורה כזו במקום קובץ אמפי3 שמים קובץ swf ובצורה כזו ניתן גם לכווץ את הקובץ לכעשירית מגודלו המקורי מצורפת דוגמא העובדת ככה הוא טוען כל פעם אחד מחמישה קבצי swf
 

IReI

New member
תודה אני אנסה ללמוד על זה קצת ../images/Emo140.gif

או שאולי אפשר לפתור את זה בעזרת Preloader ? אני אנסה גם את זה
 
למעלה