2013-05-14 57 views
-2

我想让我的媒体播放器(android)应该播放来自这个url的歌曲。我每天都使用JSON文件来更新我的播放列表文件。 请帮我我卡在这个 谢谢。如何从这个.json文件中编写Json解析器类

{ 
    "json": { 
     "Songs": [ 
      { 
       "song": "Song name ", 
       "Artist": "Sonjay singh", 
       "mp3": "http://c2lo.reverbnation.com/audio_player/download_song_direct/9140921.mp3" 
      }, 
      { 
       "song": "SONG NAME", 
       "Artist": "aritist", 
       "mp3": "mp3_URL" 
      }, 
      { 
       "song": "SONG NAME", 
       "Artist": "aritist", 
       "mp3": "mp3_URL" 
      } 
     ] 
    } 
} 

我做了这个类,但仍然发现它很难如何使用它..谢谢你帮助我。

public class Json{ 
private List songs; 

public List getSongs(){ 
    return this.songs; 
} 
public void setSongs(List songs){ 
    this.songs = songs; 
} 
} 

//

public class Songs{ 
private String artist; 
private String mp3; 
private String song; 

public String getArtist(){ 
    return this.artist; 
} 
public void setArtist(String artist){ 
    this.artist = artist; 
} 
public String getMp3(){ 
    return this.mp3; 
} 
public void setMp3(String mp3){ 
    this.mp3 = mp3; 
} 
public String getSong(){ 
    return this.song; 
} 
public void setSong(String song){ 
    this.song = song; 
} 
    } 

//

public class SongsDataBase{ 
private Json json; 

public Json getJson(){ 
    return this.json; 
} 
public void setJson(Json json){ 
    this.json = json; 
} 
} 
+0

使用jason解析器来解析它,如果你不知道它阅读它如何做到这一点。获取mp3标签在数据源中播放 – 2013-05-14 11:58:15

回答

0
Use this way to play audio songs 

public class StreamAudioDemo extends Activity implements OnClickListener, OnPreparedListener, OnCompletionListener, OnErrorListener{ 

    private MediaPlayer mp; 
    private ProgressDialog pd; 
    private Button btnplay; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     btnplay=(Button)findViewById(R.id.play); 
     btnplay.setOnClickListener(this); 
    } 
    @Override 
    public void onPrepared(MediaPlayer mp) { 
      Log.i("StreamAudioDemo", "prepare finished"); 
      pd.setMessage("Playing....."); 
      mp.start(); 
    } 

    @Override 
    public void onClick(View v) { 
     try 
     { 
      pd = new ProgressDialog(this); 
      pd.setMessage("Buffering....."); 
      pd.show(); 
      mp = new MediaPlayer(); 
      mp.setAudioStreamType(AudioManager.STREAM_MUSIC); 
      mp.setOnPreparedListener(this); 
      mp.setOnErrorListener(this); //http://www.youtube.com/watch?v=pj-T_LxSCng 
      mp.setDataSource("http://c2lo.reverbnation.com/audio_player/download_song_direct/9140921.mp3"); 

      mp.prepareAsync(); 
      mp.setOnCompletionListener(this); 
     } 
     catch(Exception e) 
     { 
      Log.e("StreamAudioDemo", e.getMessage()); 
     } 

    } 

    @Override 
    public void onCompletion(MediaPlayer arg0) { 
     pd.dismiss(); 
     Toast.makeText(getApplicationContext(), "Completed", Toast.LENGTH_LONG).show();  

    } 
    @Override 
    public boolean onError(MediaPlayer mp, int what, int extra) { 
     // TODO Auto-generated method stub 
     pd.dismiss(); 
     return false; 
    } 

} 
0

使用Gson。这是非常简单的,创建一个类(ClassB的说)有相同的变量名(歌曲,艺术家,...),并另一个类(比如classC)与ClassB的变量列表,并且assaign它

Gson gson = new Gson(); 

Reader r = new InputStreamReader(strJson(url));

classC C = gson.fromJson(r,ClassC.class);

+0

感谢兄弟我做了这个课程,但不知道如何继续。 – 2013-05-14 14:01:26