当前位置: 首页 > 知识库问答 >
问题:

E/MediaPlayer:在使用MediaPlayer时,在状态64、mPlayer(0xaf149260)下启动调用

贺恩
2023-03-14

我一直试图使用播放和停止按钮播放和停止一个mp3文件,但它一直给出这个错误:

E/MediaPlayer:start在状态64下被调用,mPlayer(0xaf149260)
E/MediaPlayer:error(-38,0)
E/MediaPlayer:error(-38,0)

这是我目前掌握的代码:

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        final MediaPlayer mainSongMP = MediaPlayer.create(this, R.raw.main_copy);

        Button playButton = (Button) this.findViewById(R.id.playButton);
        Button stopButton = (Button) this.findViewById(R.id.stopButton);

        playButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v){
                mainSongMP.start();
            }
        });

        stopButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mainSongMP.stop();
            }
        });

    }
}

共有2个答案

柯曜文
2023-03-14

就这样用

playButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
                    mainSongMP.start();
                }
            });
    
stopButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
                    mainSongMP.pause();
                }
            });
阎功
2023-03-14

您应该参考MediaPlayer状态图:

调用停止后,您不能再次直接进入启动状态。您需要再次准备媒体播放器,或者释放它并重新开始。

 类似资料:
  • 在我的一个活动中,有一个使用mediaPlayer播放音乐的按钮。它还可以选择在后台播放音乐,或者在活动结束时停止。 我用这个代码。 这很好用。现在的问题是,当用户返回活动并按下播放按钮时,它会启动一个新的mediaPlayer并播放新的音乐。当新音乐开始播放时,我想在后台停止播放以前的音乐。 这是我的代码 以及MediaPlayer声明 在创建之前

  • 我一直在win10上使用MediaPlayer,它工作得非常好,但是在我的MacBook Air(10.13.4 (17E202)上根本没有声音输出。我已经发现了类似的问题,并观察到它是由气相色谱引起的。 基于这样的答案我竭尽全力避免这件事 我试着让媒体播放器成为最终的、静态的、私有的、公共的,与getter和setter一起工作,外包,作为一个类变量,作为一个本地变量,但没有任何效果。 我正在运

  • 我正在写一个程序,需要从存储器中播放一首歌曲。我为此设置了一个MediaPlayer(下面的代码片段),但一直使用java。io。IOException:准备失败:状态=0x1。一些网站指出,发生此错误的原因可能是我试图读取的文件不具有世界可读性。如果这是真的,我如何从程序中更改文件权限、绕过此问题或其他解决方案。如果没有,请帮我找出这有什么问题。提前谢谢。

  • 问题内容: 我正在写一个简单的游戏并试图播放声音,但是当我创建它抛出的Media对象时我无法使它工作。我不是Java编码员,可以提供任何帮助。这是一个示例代码: 显然“ put.mp3”存在并位于正确的目录中,我使用以下方法检查了路径: 我在这里做错了什么? 问题答案: 问题是因为您试图在之外运行JavaFX场景图控件。 运行JavaFX应用程序线程内的所有JavaFX场景图节点。 您可以通过扩展

  • 如果我在开始之前调用seekTo,音频将从开始开始。 是否可以从特定点开始播放音频? 谢了!