我有一个裂缝用MediaPlayer对象并没有多大的成功。如果我添加了完善的资产,我的原文件夹,并用在R int值调用它,它工作正常。但我希望能够拉东西了网址。
据我所读过的setDataSource(文件的)应该接受一个字符串参数的URL到一个文件中。
我不断收到在prepare()语句IO异常。我甚至试过在本地,仍然复制文件没有骰子。
任何人有什么想法?
MediaPlayer的熔点为新的MediaPlayer();
尝试 {
mp.setDataSource(http://www.urltofile.com/file.mp3);
MP prepare()。
mp.start();
}赶上(抛出:IllegalArgumentException E){
e.printStackTrace();
}赶上(IllegalStateException异常E){
e.printStackTrace();
}赶上(IOException异常E){
e.printStackTrace();
}
解决方案
尝试MediaPlayer.create(),您可能还需要只启动后,玩家实际上是准备好,例如:
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的MediaPlayer播放器= MediaPlayer.create(这一点,Uri.parse(http://www.urltofile.com/file.mp3));
player.setOn preparedListener(新在preparedListener(){
@覆盖
公共无效于prepared(MediaPlayer的MP){
mp.start();
}
});
}
I'm having a crack at using the MediaPlayer object and not having much success. If I add a sound asset to my raw folder and call it using the int value within R, it works fine. But I want to be able to pull things off of url.
According to all of the documentation I've read setDataSource() should accept a string param with a url to a file.
I keep getting an IO exception on the prepare() statement. I've even tried copying the file locally and still no dice.
Anyone have any ideas?
MediaPlayer mp = new MediaPlayer();
try {
mp.setDataSource("http://www.urltofile.com/file.mp3");
mp.prepare();
mp.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
解决方案
Try MediaPlayer.create(), you also may want to start only after player is actually ready, for example:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MediaPlayer player = MediaPlayer.create(this, Uri.parse("http://www.urltofile.com/file.mp3"));
player.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
}