MediaPlayer
Android 中MP3 流的棘手问题。我已经用它完成了一些应用程序,但现在由于某些原因我重构了代码。
Player的activity中有一个Service的调用:
mp3Service.playSong(getBaseContext(),url);
playSong 方法包括:
public void playSong(Context c, String url) {
if (this.currenturl.equals(""))
{
this.mplayer = MediaPlayer.create(c, Uri.parse(url));
this.currenturl=url;
this.mplayer.start();
}
else
{
if (!this.currenturl.equals(url))
{
this.mplayer.stop();
//this.mplayer=null;
this.mplayer = MediaPlayer.create(c, Uri.parse(url));
this.mplayer.start();
this.currenturl=url;
} else
{
if (this.on==false)
this.mplayer.start();
};
};
this.on=true;
}
playSong
当它在ImageView
点击监听器上时,对方法的调用正常工作!音乐开始播放。
但是,当仅从玩家活动中调用时onCreate
- 它会停止应用程序。不知道为什么,但很难理解在这里使用什么上下文参数。我读过一些类似的文章和文档,但有很多迷雾。
如何确定我应该在这里的第一个 Context 参数使用什么?这取决于我从哪里打电话.playSong(Context, Uri)
?如果是,如何?上下文对于 Android 中的 new 来说是非常抽象的,类文档本身并没有说明这一点。
我尝试了很多选择,但我需要合理的理由来使用它以及如何确定应用程序停止的原因。
getApplicationContext()
getBaseContext()
this
PlayerActivity.this
和别的。但是不理解是不对的。也许错误在其他地方。但如果没有服务电话,一切正常。