【问题标题】:MediaPlayer is not playing soundMediaPlayer 没有播放声音
【发布时间】:2013-08-20 14:36:07
【问题描述】:

我正在创建一个媒体播放器。但是当我按下按钮(播放)时,它会显示错误。

08-20 11:35:21.473: D/MediaPlayer(775): Couldn't open file on client side, trying    server side

08-20 11:35:21.493: E/MediaPlayer(775): error (1, -2147483648)

08-20 11:35:21.503: W/System.err(775): java.io.IOException: Prepare failed.: status=0x1

我的代码是

btnplay.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            Uri audio = Uri.parse("android.resourse://vishesh.MediaPlayer/res/drawable/jannat");
            try {

                mp.setDataSource(Play.this,audio);
                mp.prepare();
                mp.start();
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (SecurityException e) {
                e.printStackTrace();
            } catch (IllegalStateException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

            btnplay.setText("Pause");

        }
    });

【问题讨论】:

  • 什么是音频格式?它支持格式吗?
  • 请将您的音频文件存储在 raw 文件夹中。并尝试 3gp 或 wav 格式
  • 我的文件的音频格式是mp3
  • 你的意思是android.resource(带有c)吗?
  • @Vishesh:你为什么要播放drawable目录中的文件?

标签: android android-mediaplayer


【解决方案1】:

最好将此类 .mp3 或任何其他文件放在 assets 文件夹中。

这些文件一旦存储就会成为您的 android 应用程序本身的一部分,并且可以轻松读取。

从资产播放声音。

AssetFileDescriptor afd = getAssets().openFd("AudioFile.mp3");
 player = new MediaPlayer();
 player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
 player.prepare();
 player.start();

【讨论】:

  • 你能把你的声音文件放在asset文件夹里吗?
  • 感谢先生,如果我将我的 mp3 文件放在资产文件夹中,它可以正常工作,但现在它只在第一次播放声音。第二次没有播放声音
  • 有两个按钮,一个用于播放,第二个用于停止。我第一次单击播放按钮时它可以正常工作,单击停止按钮也可以正常工作。但如果我再次点击播放按钮,则会显示错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多