2016-02-01 36 views
0

我對一個簡單的soundcloud api流示例感到非常沮喪,因爲我正在處理幾天的知道。它基本上只是隨機選擇一個SC-url並打印出卷信息。我使用Gregg Tavares的audiostreamsource.js庫創建audiocontext和創建段落的p5.js。 就是這樣...... 它在Fireforx/Chrome上運行得非常好。但出於某種原因,它只在Safari刷新頁面時才起作用。有時它甚至會與Safari崩潰。 :(我想我只是沒有足夠的經驗來解決這個問題,我真的試圖從各個角度解決它,現在我被卡住了.... :(JavaScript:用於Streaming的簡單SoundCloud API示例將無法與Safari正常工作

你可以在這裏看到我的小例子:http://christianlosert.com/test/01/ 編輯:爲了看你有沒有過去的上面的鏈接到一個新的瀏覽器選項卡中的問題,那麼你會看到一對夫婦毫秒流在Safari中止後

任何人能看到我的錯誤

PS:在Gregg Tavares的幫助下,我嘗試創建一個沒有audiostreamsource.js/p5.js庫的流式示例,以確保該錯誤位於代碼的一側。 ONLY的Safari(未火狐/鉻):http://christianlosert.com/test/greg/

我真的完全不知道發生了什麼事情在這裏

回答

1

的SoundCloud的3.0庫不會在Safari工作。見

soundcloud's 2.0 sdk works but 3.0 does not as of Oct 29th, 2015

您可以

  1. 使用的SoundCloud 2.0庫:

  2. 就使的SoundCloud API(問題,即使它不使用它,它初始化閃存)自己使用一些XHR代碼申請

    基本上你要提出一個XHR請求

    https://api.soundcloud.com/resolve?url=<musicUrl>&client_id=<yourclientid>&format=json&_status_code[302]=200 
    

    注意:您需要調用encodeURIComponent<musicUrl>,並可能對_staus_code[302]

    若結果的302狀態然後按照位置

    var result = JSON.parse(resultString); 
    if (result.status.substr(0, 3) === "302" && result.location) { 
    
        do XHR on result.location 
    
    else 
    
        use result as normal