2012-01-05 68 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", ""); 
相关问题