Merhaba!
Arka planda bir SWF Nesnesi yerleştirmem gereken bir Chrome uzantısı yapıyorum.
Her şey, SWFobject ve eventListeners için JavaScript denetimleri dışında çalışır.
Tahminimce, etki alanları arası politikalarla ilgili bir şey vardır, çünkü bir web sunucusunda sayfayı test ederken her şey iyi çalıştı.Bir Chrome Uzantısında SWF Nesnesi - API Kullanılamıyor
ana sayfasında: Arka planda
var playerView = chrome.extension.getBackgroundPage();
$('#playerPause').click(function(){
playerView.playerPause();
});
:
function playerPause() {
if (postData[nowPlaying].provider == 'youtube') {
player.pauseVideo();
}
else if (postData[nowPlaying].provider == 'soundcloud') {
player.api_pause();
};
}
Ve Olay Dinleyicilerine:
Neyse, burada parçacık İşte Youtube hem Soundcloud birini gömmek için konsolunda
soundcloud.addEventListener('onMediaEnd', playerNext);
function onYouTubePlayerReady(player) {
player.addEventListener("onStateChange", "function(state){ if(state == 0) { playerNext(); } }");
}
o
"Uncaught TypeError: Object # has no method 'pauseVideo'"
atar.
Ayrıca swfobject böyle gömülü (ve çalışır) olduğu: Uzun yazı için
function loadTrack (id) {
if(postData[id].provider == 'youtube') {
swfobject.embedSWF(
"http://www.youtube.com/e/" + postData[id].url + "?enablejsapi=1&playerapiid=player",
"player",
"1",
"1",
"8",
null,
{
autoplay: 1
},
{
allowScriptAccess: "always"
},
{
id: "player"
}
);
}
else if(postData[id].provider == 'soundcloud') {
swfobject.embedSWF(
'http://player.soundcloud.com/player.swf',
'player',
'1',
'1',
'9.0.0',
'expressInstall.swf',
{
enable_api: true,
object_id: 'player',
url: postData[id].url,
auto_play: true
},
{
allowscriptaccess: 'always'
},
{
id: 'player',
name: 'player'
}
);
}
}
Üzgünüm, mümkün olduğu kadar çok bilgi sağlamak istedik. yardımcı olabilecek herkese şimdiden bir çok
Giacomo
Sizin için bir yanıt yok, ancak bir öneri: YouTube SWFObject kodunuz FlashVars'ı iki farklı yerde ilan ediyor; Tek bir yöntemle basitleştirmenizi öneririm. ? enablejsapi = 1 & playerapiid = player, FlashVars nesnesine {autoplay: 1, enablejsapi: 1, playerapiid: "player"} olarak eklenebilir. Alternatif olarak, 'autoplay'i querystring'e taşıyabilirsiniz: • enablejsapi = 1 & playerapiid = player & autoplay = 1 – pipwerks
@pipwerks Öneri için teşekkürler, bunu nasıl unuttum bilmiyorum! – Giakki
"Oynatıcı" nın nasıl tanımlandığı hakkında kafam karıştı. Bazen onun bir global ("playerPause" içinde) ve bazen bir yerel ("onYouTubePlayerReady" içinde) belki orada bir ipucu var. – mjhm