android MediaPlayer没有播放mp3文件

use*_*832 12 audio mp3 android media-player

我已经编写了我能想到的最基本的应用程序来尝试播放mp3文件,但它无法正常工作.我没有收到任何错误,但是当应用程序启动时,声音不会播放.

public class soundtest extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        MediaPlayer mp = new MediaPlayer();
        mp.create(getApplicationContext(), R.raw.norm_iphone_money);
        mp.start();
    }
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?我在res/raw文件夹中有"norm_iphone_money.mp3".该文件在Windows Media Player和iTunes中播放正常.

我正在使用最新版本的Java SDK和Eclipse for Java.该应用程序针对Android 2.2,尽管没有声音,但在模拟器中运行良好.

Xua*_* Vu 41

问题是媒体音量设置为0(不是铃声音量).您可以通过以下方式设置:

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 20, 0);
Run Code Online (Sandbox Code Playgroud)

请查看开发人员页面以及解释setStreamVolume(int,int,int)参数的另一个问题.

  • 我的生命还有一个小时......谢谢! (4认同)

Sha*_*God 10

尝试替换这两行:

MediaPlayer mp = new MediaPlayer();
mp.create(getApplicationContext(), R.raw.norm_iphone_money);
Run Code Online (Sandbox Code Playgroud)

用这一行:

MediaPlayer mp = MediaPlayer.create(this, R.raw.norm_iphone_money);
Run Code Online (Sandbox Code Playgroud)

看看是否有效.

  • 如果这两篇文章在编译代码中有任何逻辑上的不同,我会感到震惊. (7认同)
  • 当然它在逻辑上是不同的.mp.create将调用静态方法,它将返回一个永远不会存储的MediaPlayer的新实例.然后,他在默认构造的实例上调用start(). (6认同)