"Streamable"속성이 true로 설정된 경우에도 트랙을 스트리밍하는 동안 404 오류를 반환하는이 SoundCloud의 API 버그에 대해 읽었습니다.트랙을 스트리밍하는 동안 SoundCloud의 JavaScript API 404 오류를 처리하는 방법
주제에 대한 다른 질문이 있는데 ("Tracks for “The Hives” are not streaming via the api"또는 "Soundcloud API SC.stream (track not loading)"참조), 내가 알고 싶은 것은 오류를 감지하는 방법과 해결 방법입니다. 내가 어떤 try {} catch() {}
와 함께했지만 그 문제를 감지 할 수없는 것 같습니다.
내가 재생 트랙의 목록이있는 JSON 배열을 반환하는 PHP가 : 여기
몇 가지 배경 정보입니다. 내 스크립트는 배열을 하나씩 읽은 다음 현재 배열을 재생하려고합니다. 모든 것이 잘 작동하지만404 error
이 반환되면 다음 트랙으로 점프하지 않고 스크립트가 끝납니다. 그것은 그 종류의 문제를 감지 할 수없는 것 같습니다.
이
playTrack = function() {
// console.log('playTrack');
SC.get(
"/tracks/" + playlist[ now_playing ].sndc_id,
function(track, error) {
if (error) {
sendErrorReport(playlist[ now_playing ].id);
loadNext();
} else {
try {
SC.stream(
"/tracks/" + playlist[ now_playing ].sndc_id,
function(sound, error) {
sound_object = sound;
if (error || !sound_object) {
sendErrorReport(playlist[ now_playing ].id);
loadNext();
} else {
sound_object.play(
{
'from': parseInt(current_position),
'onfinish': function() {
current_position = 0;
updateCounter();
$('#radio-waveform-position').css({ 'opacity': '0', 'width' : '0%' });
loadNext();
},
'onplay': function() {
$('#radio-like').removeClass('liked');
playing = true;
updateInfo();
},
'whileplaying': function() {
current_position = this.position;
$('#radio-waveform-position').css({ 'opacity': '1', 'width' : (100 * current_position/this.duration).toFixed(3) + '%' });
},
'ondataerror': function() {
sendErrorReport(playlist[ now_playing ].id);
loadNext();
}
}
);
if ($('html').hasClass('touch') || !autoplay) $('#radio-play-pause').click();
}
}
);
} catch (err) {
sendErrorReport(playlist[ now_playing ].id);
loadNext();
}
}
}
);
}
SC.get
및 SC.stream
"오류"반환 매개 변수를 모두 항상 "결함"트랙 이런 종류의 빈 것 같다 :
다음은 스트림을 관리하는 자바 스크립트 방법이다. 보시다시피, 나는 try() {} catch() {}
에 모든 것을 싸려고했지만 성공하지는 못했습니다. 또한 sound_object.play()
ondataerror
메서드는 완전히 무시됩니다.
스크립트
은 여기에 행동에서 볼 수있다 : 나는 누군가가 그에 대한 해결 방법을 찾았지만 아무런 설명이 없었다 읽었 http://foggetabout.it/. 누구든지 그것을 해결하는 방법에 대한 아이디어가 있습니까?
는 여전히를 반환합니까 404 JS API를 사용한다면? 'http : // connect.soundcloud.com/sdk-2.0.0.js' – Marco
스크립트를 바꾸면 작동하도록 코드를 다시 작성해야한다고 생각합니다. 이제는 http : // connect를로드합니다. soundcloud.com/sdk.js') 응용 프로그램이 아무런 오류없이 멈 춥니 다. 나는 고마워. 고마워. – simonelippolis