2012-12-19 27 views
6

Tôi đang cố chuyển từ jw5 sang jw6. Trong jw5, tôi đã bao gồm gọi lại sự kiện trong thiết lập trình phát. Ví dụ:jwplayer 6 thiết lập không còn hỗ trợ gọi lại sự kiện. làm thế nào để biết khi nào người chơi đã sẵn sàng nếu tôi không thể chỉ định cuộc gọi lạiReady trong khi thiết lập?

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"); 
    },   
    } 
}); 

Theo sự di cư jw5-to-jw6 documentation, có vẻ như tôi không còn có thể bao gồm callbacks sự kiện trong thiết lập máy nghe nhạc:

Removed: khối cấu hình các sự kiện Bằng cách này thêm người nghe sự kiện là hoàn toàn dư thừa với việc thêm người nghe bên ngoài thiết lập, cả về tính năng và số lượng mã được yêu cầu.

Nếu tôi hiểu đúng, nên anh phải để xác định callbacks sự kiện theo cách này:

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

Câu hỏi của tôi:

Dường như với tôi rằng tôi cần phải chờ đợi cho đối tượng myplayer được sẵn sàng, trước khi tôi có thể xác định các callback sự kiện myplayer này. Thật? Làm cách nào để biết khi nào trình phát của tôi sẵn sàng, nếu tôi không thể chỉ định cuộc gọi lại sự kiện onReady trong quá trình thiết lập?

Trả lời

10

Trong JWPlayer6, bạn có thể thêm onReady trình xử lý sự kiện giống như cách bạn thêm người khác. Điều này phù hợp với tôi:

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

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

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

    playerInstance.play(); 
}); 
+1

Tôi đã thử, nhưng nó không hoạt động đối với tôi. (Sử dụng trình gỡ lỗi firebug, tôi thấy rằng "console.log ('ready')" chưa bao giờ được thực thi.) – moondog

+0

Bạn có bất kỳ lỗi/nhật ký nào khác trong firebug không? Có thể bạn có đường dẫn không chính xác đến trình phát swf hoặc thứ gì đó khác. Tôi khuyên bạn nên bắt đầu với ví dụ cơ bản như tôi đã làm - chỉ cần tải về các tập tin JWplayer và thử mã ở trên với nó. – Inferpse

+1

cảm ơn bạn, tính năng này hiện đang hoạt động cho tôi. vấn đề là tôi đang sử dụng một phiên bản không nén của jwplayer, js để gỡ rối một vấn đề khác. khi tôi quay trở lại sử dụng phiên bản nén của jwplayer.js gốc, lệnh callReady hoạt động. – moondog

0

Vấn đề đầu tiên là, rằng bạn có một lỗi đánh máy trong khối mã cuối cùng của bạn: nó phải được myplayer.onReady() ;-)

Hơn nữa, xử lý sự kiện được nối với các đối tượng tương ứng ngay khi họ đang tiến hành.

Vì vậy, tôi nghĩ rằng bạn chỉ nên đặt thiết lập jwplayer của bạn và onReady & onPlay sự kiện vào $(document).ready().

Tôi nghĩ điều này sẽ hoạt động như mong đợi.

+0

Thật không may, tôi không thể đặt thiết lập jwplayer và gọi lại sự kiện trong $ (tài liệu) .ready(). Tôi đang cố gắng phát triển một plugin jwplayer cho trình phát mediafront, plugin này sẽ tải jwplayer động, khi cần. – moondog

+0

@moondog OK! Bạn đã xem xét câu trả lời khác chưa? – andi1984