android MediaPlayer setDataSource没有抓取可播放的文件

时间:2014-10-17 11:53:37

标签: android android-mediaplayer

嘿,我无法从我的localhost服务器(以及其他带有原始mp3文件的网站)播放流。我的代码适用于已注释掉的网站,因此我认为它有一些内容 做服务器而不是java代码。



public class MainActivity extends ActionBarActivity{
	//static final String ANCHOR = "http://www.hrupin.com/wp-content/uploads/mp3/testsong_20_sec.mp3";
	static final String ANCHOR = "http://spintron.ddns.net/Random%20Access%20Memories/07%20-%20Touch.mp3";
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        MediaPlayer mp = new MediaPlayer();
        mp.setVolume(1, 1);
        try{
        	mp.setDataSource(ANCHOR);
        	mp.prepareAsync();
        }catch(Exception e){
        	e.printStackTrace();
        }
        mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
			@Override
			public void onPrepared(MediaPlayer mp) {
				Toast.makeText(MainActivity.this,"Prepared",Toast.LENGTH_LONG).show();
				mp.start();
				
			}
		});
        
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}




1 个答案:

答案 0 :(得分:0)

要播放音乐文件,请参阅以下代码。 我的res / raw文件夹包含options_music.wav音乐文件。

// Play Music

    MediaPlayer mp = new MediaPlayer();
    AssetFileDescriptor descriptor;


    try {
        descriptor = getAssets().openFd("options_music.wav");
        mp.setDataSource(descriptor.getFileDescriptor(),
                descriptor.getStartOffset(), descriptor.getLength());
        descriptor.close();
        mp.prepare();
        mp.start();

        mp.setOnCompletionListener(new OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
                //Log.e("Music", "Music Completed........");
                mp.start();
            }
        });

    } catch (Exception e) {
        Log.e("ErrorMusic", "Cant Play Music File"+e);
    }

对于您的网址,请确保您的网址已正确编码并可通过移动设备访问。