怎么玩媒体?

时间:2011-01-10 08:36:33

标签: android

您好 如何在应用程序中播放媒体文件。我正在尝试使用以下代码,但不知道为什么它不适合我

player= new MediaPlayer().create(context, R.raw.lonely);
player.start();
player.release();

帮帮我。 提前谢谢。

3 个答案:

答案 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();
}