Android Studio Java MediaPlayer 只播放音频的第一秒然后停止

Posted

技术标签:

【中文标题】Android Studio Java MediaPlayer 只播放音频的第一秒然后停止【英文标题】:Android Studio Java MediaPlayer plays only the first second of audio and then stops 【发布时间】:2020-10-27 13:31:37 【问题描述】:

我正在尝试让 MediaPlayer 播放大约两分钟长的 mp3 音频,但是只播放第一秒然后播放器停止。我已经厌倦了 mp3 和 wav 格式。这是我的代码:

package com.pi.audiodemo;
import androidx.appcompat.app.AppCompatActivity;

import android.media.MediaPlayer;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity 

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        MediaPlayer mediaPlayer = (MediaPlayer) MediaPlayer.create(this, R.raw.dumb);
        mediaPlayer.start();
    

【问题讨论】:

@Style-7 显然使用 MediaPlayer.create() 会自动执行此操作。添加它会返回编译错误。 “未报告的异常 IOException;必须被捕获或声明为抛出” 【参考方案1】:

您在onCreate 函数中创建MediaPlayer。所以它会在函数返回后立即被删除。试试下面的代码:

package com.pi.audiodemo;
import androidx.appcompat.app.AppCompatActivity;

import android.media.MediaPlayer;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity 

    MediaPlayer mediaPlayer;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mediaPlayer = (MediaPlayer) MediaPlayer.create(this, R.raw.dumb);
        mediaPlayer.start();
    

【讨论】:

谢谢,这成功了,音频现在可以一直播放,但播放速度很慢而且很慢(好像以 0.5 倍的速度播放)。我该如何解决这个问题?

以上是关于Android Studio Java MediaPlayer 只播放音频的第一秒然后停止的主要内容,如果未能解决你的问题,请参考以下文章

Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.Media

无法删除 Android Studio 中的目录

从 Ramdisk 运行 Android Studio 的问题

java.lang.SecurityException:方法类 android.media.IAudioService$Stub$Proxy.isCameraSoundForced[] 不可用

java.lang.RuntimeException:android.database.sqlite.SQLiteException:没有这样的表:media_store_extension(代码1)

Caused by:java.lang.IllegalStateException at android.media.MediaPlayer._setDataSource(Native Method)