2012-01-05 45 views
4

我想在我的Android應用中使用soundcloud,如下所示: 我想在帶有URL地址的soundcloud播放器上播放歌曲。 我在webview中使用了以下代碼,但它沒有正確運行。 我該怎麼做? 謝謝。如何在我的android應用程序中使用SoundCloud?

<iframe width=\"100%\" height=\"166\" scrolling=\"no\" frameborder=\"no\" src=\"http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F31416027&amp;auto_play=false&amp;show_artwork=false&amp;color=ff7700\"></iframe> 
+0

請詳細說明什麼沒有工作,什麼工作。 – Cheesebaron 2012-01-05 12:15:04

+0

只工作過一次,但我沒有拿出這首歌。也許這是更好的解決方案。 – realuser 2012-01-05 12:29:54

回答

1

我遇到同樣的問題。我發現標準嵌入代碼不起作用的原因是Android瀏覽器不支持HTML5音頻編解碼器。最好的照片是我猜的官方包裝,但我不知道如何做到這一點(只是一個業餘愛好者)。

+0

如何導入souldcloud java-wrapper-api https://github.com/soundcloud/java-api-wrapper庫到我的android應用程序? – 2014-12-01 18:23:13

2

我也嘗試過使用webview的嵌入式播放器解決方案,但這不起作用。

現在我正在使用Soundcloud Java API Wrapper,並且工作正常。 按照GitHub回購指示實施API:https://github.com/soundcloud/java-api-wrapper

該代碼然後是非常簡單的。你只需要一個客戶端ID和一個客戶端密碼,都必須在soundcloud開發者網站上獲得。

然後,該代碼是真的簡單:

 String id = getResources().getString(R.string.sc_client_id); 
     String secret = getResources().getString(R.string.sc_client_secret); 
     ApiWrapper wrapper = new ApiWrapper(id,secret, null, null); 

     try { 
      //Only needed for user-specific actions; 
      //wrapper.login("<user>", "<pass>"); 
      //HttpResponse resp = wrapper.get(Request.to("/me")); 
      //Get a track 
      HttpResponse trackResp = wrapper.get(Request.to("/tracks/60913196")); 
      //Track JSON response OK? 
      if(trackResp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) 
      { 
       JSONObject trackJSON = new JSONObject(EntityUtils.toString(trackResp.getEntity())); 
       //If track is streamable, fetch the stream URL (mp3-https) and start the MediaPlayer 
       if(trackJSON.getBoolean("streamable")) 
       { 
        HttpResponse streamResp = wrapper.get(Request.to("/tracks/60913196/stream")); 
        JSONObject streamJSON = new JSONObject(EntityUtils.toString(streamResp.getEntity())); 
        String streamurl = streamJSON.getString("location"); 
        Log.i("SoundCloud", trackJSON.getString("streamable")); 
        Log.i("SoundCloud", streamurl); 
        m_soundcloudPlayer.stop(); 
        m_soundcloudPlayer = new MediaPlayer(); 
        m_soundcloudPlayer.setDataSource(streamurl); 
        m_soundcloudPlayer.prepare(); 
        m_soundcloudPlayer.start(); 
       } 

      } 
     } 
     catch (IOException e) 
     { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     }catch (ParseException e) 
     { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     catch (JSONException e) 
     { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

目的m_soundcloudPlayerandroid.media.MediaPlayer

0

我曾嘗試使用SoundCloud Java Api Wrapper。但是當我試圖獲得賽道時,那件事給我帶來了錯誤。

即在線路

HttpResponse trackResp = wrapper.get(Request.to("/tracks/60913196")); 

錯誤 - 13781-13781/com.example.DDS.soundcloud E /跟蹤:錯誤跟蹤開口文件:沒有這樣的文件或目錄(2)

如果有人在Android應用程序中使用Soundcloud播放器的工作項目。我請你請與我們分享這個項目。

1
//In Activity_layout.xml 

<LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical"> 
     <WebView android:id="@+id/webview" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        /> 

    </LinearLayout> 



// In ActivityClass.java 

    mSoundCloudPlayer =(WebView) findViewById(R.id.webview); 

    String VIDEO_URL = "Set Your Embedded URL"; 

    String html = "<!DOCTYPE html><html> <head> <meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"target-densitydpi=high-dpi\" /> <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"> <link rel=\"stylesheet\" media=\"screen and (-webkit-device-pixel-ratio:1.5)\" href=\"hdpi.css\" /></head> <body style=\"background:black;margin:0 0 0 0; padding:0 0 0 0;\"> <iframe id=\"sc-widget " + 
            "\" width=\"100%\" height=\"50%\"" + // Set Appropriate Width and Height that you want for SoundCloud Player 
            " src=\"" + VIDEO_URL // Set Embedded url 
            + "\" frameborder=\"no\" scrolling=\"no\"></iframe>" + 
            "<script src=\"https://w.soundcloud.com/player/api.js\" type=\"text/javascript\"></script> </body> </html> "; 

      mSoundCloudPlayer.setVisibility(View.VISIBLE); 
      mSoundCloudPlayer.getSettings().setJavaScriptEnabled(true); 
      mSoundCloudPlayer.getSettings().setLoadWithOverviewMode(true); 
      mSoundCloudPlayer.getSettings().setUseWideViewPort(true); 
      mSoundCloudPlayer.loadDataWithBaseURL("",html,"text/html", "UTF-8", ""); 
相關問題