2012-12-19 23 views
6

मैं jw5 से jw6 में माइग्रेट करने का प्रयास कर रहा हूं। Jw5 में, मैंने प्लेयर सेटअप के भीतर ईवेंट कॉलबैक शामिल किया था। उदाहरण के लिए:jwplayer 6 सेटअप अब ईवेंट कॉलबैक का समर्थन नहीं करता है। जब मैं सेटअप के भीतर रीडी कॉलबैक निर्दिष्ट नहीं कर सकता तो खिलाड़ी कैसे तैयार होता है?

निकाला गया:: घटनाओं विन्यास ब्लॉक इस तरह

var myplayer = jwplayer('container').setup({ 
    flashplayer: /my/player.swf', 
    height: '100%', 
    width: '100%', 
    events: { 
    'onReady': function(event) { 
     alert ("on ready"); 
    }, 
    'onPlay': function(event) { 
     alert ("on play"); 
    },   
    } 
}); 

jw5 करने वाली jw6 प्रवास documentation के अनुसार, यह मैं अब खिलाड़ी सेटअप के भीतर घटना कॉलबैक शामिल कर सकते हैं लगता है इवेंट श्रोताओं को जोड़ना, सुविधाओं के बाहर श्रोताओं को जोड़ने के साथ पूरी तरह से अनावश्यक है, दोनों सुविधाओं और आवश्यक कोड की मात्रा के मामले में।

अगर मैं सही ढंग से समझ, मैं घटना कॉलबैक इस तरह से निर्दिष्ट करना चाहिए:

myplayer.onReady(function(event){ 
    alert('on ready'); 
}); 
myplayer.onPlay(function(event){ 
    alert('on play'); 
}); 

मेरे प्रश्न:

मुझे ऐसा लगता है मैं MyPLAYER वस्तु होने के लिए प्रतीक्षा करने की जरूरत है तैयार, इससे पहले कि मैं इन myplayer घटना कॉलबैक को परिभाषित कर सकूं। सच? मुझे कैसे पता चलेगा कि Myplayer तैयार है, अगर मैं सेटअप के भीतर ऑनडिडी ईवेंट कॉलबैक निर्दिष्ट नहीं कर सकता?

उत्तर

10

जेडब्लूप्लेयर 6 में आप onReady ईवेंट हैंडलर को उसी तरह जोड़ सकते हैं जैसे आप दूसरों को जोड़ते हैं। यह मेरे लिए काम करता है:

var playerInstance = jwplayer("myElement").setup({ 
    file: "test.mp4" 
}); 

playerInstance.onReady(function() { 
    console.log('ready'); 

    playerInstance.onPlay(function() { 
     console.log('playing'); 
    }); 

    playerInstance.play(); 
}); 
+1

मैंने यह कोशिश की, लेकिन यह मेरे लिए काम नहीं कर रहा है। (फायरबग डीबगर का उपयोग करके, मुझे लगता है कि "console.log ('ready')" कभी निष्पादित नहीं होता है।) – moondog

+0

क्या आपके पास फ़ायरबग में कोई अन्य त्रुटियां/लॉग हैं? शायद आपके पास SWF प्लेयर या कुछ और करने का गलत पथ है। मैं आपको मूल उदाहरण के साथ शुरू करने की सलाह देता हूं जैसे मैंने किया - बस JWplayer फ़ाइलों को डाउनलोड करें और इसके साथ कोड को आजमाएं। – Inferpse

+1

धन्यवाद, यह अब मेरे लिए काम कर रहा है। समस्या यह थी कि मैं jwplayer का एक असम्पीडित संस्करण का उपयोग कर रहा था, जेएस एक अलग समस्या डीबग करने के लिए। जब मैं jwplayer.js के मूल संपीड़ित संस्करण का उपयोग करने के लिए वापस चला गया, तो रेडी कॉलबैक काम करता है। – moondog

0

पहला मुद्दा है, आप अपने पिछले कोड ब्लॉक में कोई गलती है: यह जैसे ही वे रवाना कर रहे हैं myplayer.onReady() ;-)

इसी वस्तुओं के लिए इसके अलावा ईवेंट हैंडलर्स को झुका हो जाना चाहिए।

तो मैं आप बस अपने JWPlayer स्थापना और $(document).ready() में onReady & onPlay घटनाओं रखना चाहिए लगता है।

मुझे लगता है कि यह अपेक्षा के अनुसार काम करना चाहिए।

+0

दुर्भाग्यवश, मैं $ (दस्तावेज़) .ready() के भीतर अपना jwplayer सेटअप और ईवेंट कॉलबैक नहीं डाल सकता। मैं मीडियाफ्रंट प्लेयर के लिए एक jwplayer प्लगइन विकसित करने की कोशिश कर रहा हूं, जो आवश्यकतानुसार jwplayer गतिशील रूप से लोड करेगा। – moondog

+0

@moondog ठीक है! क्या आपने दूसरे जवाब पर नजर डाली है? – andi1984