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

MediaPlayer未播放服务器上的某些音频文件

司空宗清
2023-03-14

我正在尝试实现一个在线奉献诗篇流Android应用程序。我正试图使用Android SDK框架提供的MediaPlayer类直接从我的网站服务器上传输这些音频文件。

这是我的MediaPlaybackUtility的代码。Java语言

public class MediaPlaybackUtility {
    static boolean isMediaPlaying = false;
    static MediaPlayer mMediaPlayer = new MediaPlayer();

    static void playPauseBhajan(String fileURL) {
        if(!mMediaPlayer.isPlaying()) {
           try {
                mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                mMediaPlayer.setDataSource(ONLINE_AUDIO_URL);
                mMediaPlayer.prepareAsync();
                mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                    @Override
                    public void onPrepared(MediaPlayer mp) {
                        mMediaPlayer.start();
                        isMediaPlaying = true;
                    }
                });
            } catch (IOException e) {
                // TODO: handle exception
            }
        } else {
            mMediaPlayer.pause();
            isMediaPlaying = false;
        }
    }

    static void stopBhajan() {
        mMediaPlayer.stop();
        isMediaPlaying = false;
    }
}

我输入了保存在服务器上的音频文件的URL,而不是ONLINE_audio_URL,但在使用MediaPlayer时,我有一些奇怪的经历。MediaPlayer类正在播放一些文件,而它没有播放其他文件,我无法理解问题出在哪里。

以下是上述代码正在播放的音频文件的链接,没有任何错误:
1.testsong_20sec.mp3
2. TheRadiance. m4a
3. WaitingfortheEnd. m4a

以下是MediaPlayer无法播放的链接:
1。ShapeofYou。mp3。阿雷德·沃尔帕隆。mp3。克里希纳主题。mp3。BataoKahaMilegaShyam。mp3

然后,我尝试将OneErrorListener设置为MediaPlayer,以便在流式传输这些文件时出现错误,我可以将这些错误注销,因此我在播放器的后面添加了这些行。prepareAsync() 但当我再次将URL更改为MediaPlayer无法播放的URL时,Logcat中没有记录任何错误。

mMediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
    @Override
    public boolean onError(MediaPlayer mp, int what, int extra) {
        Log.e("MEDIAPLAYER", "Can't play media.");
        return false;
    }
});

然后我把这些MP3文件转换成M4A格式,就像这个AreyDwarPalonm4a一样。m4a,但同样没有运气,而且该文件不是由MediaPlayer从服务器上播放的。

我也在网上到处搜索,但找不到任何与我的具体问题有关的东西。也许我在这里忽略了一些基本概念,因为我第一次使用MediaPlayer和音频文件,但最令人困惑的是,它正在播放保存在服务器上的一些文件,而不是其他文件。

共有2个答案

向安福
2023-03-14

播放大型音频文件时显示错误(

徐洋
2023-03-14

我想你应该在mMediaPlayer.prepareAsync()之前添加这个监听器

mMediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
    @Override
    public boolean onError(MediaPlayer mp, int what, int extra) {
        Log.e("MEDIAPLAYER", "Can't play media.");
        return false;
    }
});
mMediaPlayer.prepareAsync();
 类似资料:
  • 主要内容:本节引言:,1.相关方法详解,2.使用代码示例,3.本节示例代码下载:,本节小结:本节引言: 本节带来的是Android多媒体中的——MediaPlayer,我们可以通过这个API来播放音频和视频 该类是Androd多媒体框架中的一个重要组件,通过该类,我们可以以最小的步骤来获取,解码 和播放音视频。它支持三种不同的媒体来源: 本地资源 内部的URI,比如你可以通过ContentResolver来获取 外部URL(流) 对于Android所支持的的媒体格式列表 对于Androi

  • 本文向大家介绍Android MediaPlayer 播放音频的方式,包括了Android MediaPlayer 播放音频的方式的使用技巧和注意事项,需要的朋友参考一下 主要介绍使用MediaPlayer播放音频的方式。关于MediaPlayer的基础知识,比如状态,可以参考Android MediaPlayer 基础简介。 为了方便表达,定义变量名为mediaPlayer。 MediaPlay

  • 经过多次尝试,我决定去ExoPlayer库。我很高兴使用方便和不断更新。此外,它减少了我的APK的大小三倍。 不幸的是,ExoPlayer库无法播放一些音频流。我尝试过调试、更改对URL的调用等等。不成功。 以下是我不能用ExoPlayer库玩的流的例子,但我可以用Vitamio复制: http://42747t.lp.azioncdn.net:1935/2747t/a/mp4:access_op

  • 今天,我制作了一个在Android中播放音乐的应用程序。 使用MediaPlayer播放音频文件时失败;它无法播放任何文件音频。此异常引发日志cat,如: E/MediaPlayer:错误(1,-2147483648) 带系统。错误:java。io。IOException:准备失败:状态=0x1 W/System.err:android.media.MediaPlayer.prepare(本机方法

  • 本文向大家介绍关于Window Server2008 服务器上无法播放音频文件和FLV视频文件,包括了关于Window Server2008 服务器上无法播放音频文件和FLV视频文件的使用技巧和注意事项,需要的朋友参考一下 在偌大的百度当中查找我所需要的资源信息,但网络上所描述的都不能解决,发生此类问题的人很多,但是都没有得到准确的解决方法!经个人各方面的尝试,其实非常简单的解决了无法播放音频文件

  • 尝试使用mediacontroller通过url播放音频文件 但我有一个错误: 09-11 10:28:23.970:E/MediaPlayer(912):尝试在没有有效MediaPlayer的情况下调用getDuration 09-11 10:28:23.970:E/MediaPlayer(912):错误(-38,0)09-11 10:28:23.990:E/MediaPlayer(912):尝