Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, como vcs estão ?
bom, é o seguinte...
tenho um site onde quero exibir algumas imagens que estão no iTunes.
para eu buscar uma imagem eu utilizo esse link que o iTunes disponibiliza:
https://itunes.apple.com/search?term=Justin+Bieber&limit=1
e ele me retorna esse código abaixo:
{
"resultCount":1,
"results": [
{"wrapperType":"track", "kind":"song", "artistId":320569549, "collectionId":1049605561, "trackId":1049605634, "artistName":"Justin Bieber", "collectionName":"Purpose (Deluxe)", "trackName":"Love Yourself", "collectionCensoredName":"Purpose (Deluxe)", "trackCensoredName":"Love Yourself", "artistViewUrl":"https://itunes.apple.com/us/artist/justin-bieber/id320569549?uo=4", "collectionViewUrl":"https://itunes.apple.com/us/album/love-yourself/id1049605561?i=1049605634&uo=4", "trackViewUrl":"https://itunes.apple.com/us/album/love-yourself/id1049605561?i=1049605634&uo=4", "previewUrl":"http://a1268.phobos.apple.com/us/r30/Music69/v4/8d/89/89/8d898987-2771-877f-b06c-27813f13c79f/mzaf_6954744275616470123.plus.aac.p.m4a", "artworkUrl30":"http://is5.mzstatic.com/image/thumb/Music6/v4/0e/38/b4/0e38b405-ae2c-1da4-5959-866f7abb110e/source/30x30bb.jpg", "artworkUrl60":"http://is5.mzstatic.com/image/thumb/Music6/v4/0e/38/b4/0e38b405-ae2c-1da4-5959-866f7abb110e/source/60x60bb.jpg", "artworkUrl100":"http://is5.mzstatic.com/image/thumb/Music6/v4/0e/38/b4/0e38b405-ae2c-1da4-5959-866f7abb110e/source/100x100bb.jpg", "collectionPrice":13.99, "trackPrice":1.29, "releaseDate":"2015-11-13T08:00:00Z", "collectionExplicitness":"notExplicit", "trackExplicitness":"notExplicit", "discCount":1, "discNumber":1, "trackCount":18, "trackNumber":5, "trackTimeMillis":233719, "country":"USA", "currency":"USD", "primaryGenreName":"Pop", "isStreamable":true}]
}
Gostaria de saber como faço pra exibir somente o link do álbum, a case onde fica o link é: artworkUrl100.
espero tenham entendido...
Obrigado desde já!
>
11 horas atrás, wootzor disse:
É só seguir a estrutura do objecto JSON: results[0].artworkUrl100 irá devolver a URL que pretendes.
Exemplo utilizando jQuery:
$(document).ready(function() {
$.ajax({
url: "https://itunes.apple.com/search?term=Justin+Bieber&limit=1",
type: "post",
dataType: "jsonp",
success: function(data) {
$("img").attr("src", data.results[0].artworkUrl100);
}
});
});
Obrigado amigo, só que agora estou me deparando com um outro problema, teria como "tratar" essa url que me retorna?
no caso ele retorna o link da imagem que seria: [http://is5.mzstatic.com/image/thumb/Music6/v4/0e/38/b4/0e38b405-ae2c-1da4-5959-866f7abb110e/source/100x100bb.jpg](http://is5.mzstatic.com/image/thumb/Music6/v4/0e/38/b4/0e38b405-ae2c-1da4-5959-866f7abb110e/source/100x100bb.jpg) , onde eu destaquei em vermelho é o tamanho da imagem, eu precisaria de um tamanho maior, basta mudar "**100x100**" para o tamanho que desejo, que consigo obter a imagem.
Teria como eu tratar esse link para outro tamanho um exemplo "**300x300**" ?Segue um exemplo utilizando uma expressão regular, para flexibilidade.
$("img").attr("src", data.results[0].artworkUrl100.replace(/\d{3}x\d{3}/gi, "300x300"));
Da mesma forma, podes fazer algo como:
$("img").attr("src", data.results[0].artworkUrl100.replace("100x100", "300x300"));Dando meu 50 cents ao post.,
Esse cara aqui ajuda na leitura de JSON. (Apesar que o Preview do Google Chrome tmb é muito eficiente hehe)
>
Em 17/04/2017 at 04:56, wootzor disse:
Tenho um código parecido mas não funcionou essa função
*player.prototype.refreshArtwork = function() {
var me = this;
$.ajax({
url: 'http://itunes.apple.com/search',
data: {
term: this._old_search_term,
media: 'music'
},
dataType: 'jsonp',
success: function(json) {
if(json.results.length === 0) {
deb('REFRESHARTWORK: null image');
me.cover.css('background-image', '');
me.artworkUrl = '';
return;
}*
* // search for the best result
var img = new Image();
img.onload = function() {
if(this.width * this.height > me.artworkWidth * me.artworkHeight) {
me.artworkWidth = this.width;
me.artworkHeight = this.height;
me.artworkUrl = this.src;
}
if((this.width == 300 && this.height == 300) || me.artworkNumber >= 5 || json.results.length <= me.artworkNumber+1) {
me.artworkUrl = img.src;
me.cover.css('background-image', 'url('+me.artworkUrl+')');
deb('REFRESHARTWORK: url '+me.artworkUrl);
} else {
deb("Discarding image: "+this.width + 'x' + this.height);
me.artworkNumber += 1;
this.src = json.results[me.artworkNumber].artworkUrl100;
}*
* }
me.artworkWidth = 0;
me.artworkHeight = 0;
me.artworkNumber = 0;
me.artworkUrl = null;
if(json.results.length)
img.src = json.results[0].artworkUrl100;
}
});
}*
>
Em 17/04/2017 at 04:56, wootzor disse:
>
Citar
O meu código é um pouco diferente alguém pra me dar uma luz de como dimensionar a imagem 300X300
player.prototype.refreshArtwork = function() {
var me = this;
$.ajax({
url: 'http://itunes.apple.com/search',
data: {
term: this._old_search_term,
media: 'music'
},
dataType: 'jsonp',
success: function(json) {
if(json.results.length === 0) {
deb('REFRESHARTWORK: null image');
me.cover.css('background-image', '');
me.artworkUrl = '';
return;
}
// search for the best result
var img = new Image();
img.onload = function() {
if(this.width * this.height > me.artworkWidth * me.artworkHeight) {
me.artworkWidth = this.width;
me.artworkHeight = this.height;
me.artworkUrl = this.src;
}
if((this.width == 300 && this.height == 300) || me.artworkNumber >= 5 || json.results.length <= me.artworkNumber+1) {
me.artworkUrl = img.src;
me.cover.css('background-image', 'url('+me.artworkUrl+')');
deb('REFRESHARTWORK: url '+me.artworkUrl);
} else {
deb("Discarding image: "+this.width + 'x' + this.height);
me.artworkNumber += 1;
this.src = json.results[me.artworkNumber].artworkUrl100;
}
}
me.artworkWidth = 0;
me.artworkHeight = 0;
me.artworkNumber = 0;
me.artworkUrl = null;
if(json.results.length)
img.src = json.results[0].artworkUrl100;
}
});
}
É só seguir a estrutura do objecto JSON: results[0].artworkUrl100 irá devolver a URL que pretendes.
Exemplo utilizando jQuery: