您好 如何在应用程序中播放媒体文件。我正在尝试使用以下代码,但不知道为什么它不适合我
player= new MediaPlayer().create(context, R.raw.lonely);
player.start();
player.release();
帮帮我。 提前谢谢。
答案 0 :(得分:2)
我还没有使用MediaPlayer
,但我会在没有release()
电话的情况下尝试。 This example没有使用它。并且docs说它是在播放后调用的清理方法:
发布与之相关的资源 这个MediaPlayer对象。它是 这被称为良好做法 你完成使用时的方法 的MediaPlayer。
答案 1 :(得分:1)
我认为你搞乱了构造函数。您可以静态实例化MediaPlayer:MediaPlayer.create(Context context, int resid)
,这是最简单的方法,因为您只需要调用play()
。此外,您需要一个有效的上下文,也就是说,如果您在Activity或Service中创建了MediaPlayer,只需将“this”作为上下文传递。
你也可以使用“普通”构造函数MediaPlayer()
,但是你必须在setDataSource()
之前明确地调用prepare()
和play()
。
此外,正如Grzegorz写的那样,在release()
之后调用play()
不是一个好主意。
答案 2 :(得分:0)
你可以关注这个样本:
public void audioPlayer(String path, String fileName){
//set up MediaPlayer
MediaPlayer mp = new MediaPlayer();
try {
mp.setDataSource(path+"/"+fileName);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
mp.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.start();
}