android - 在 Samsung Galaxy S5 Android 5.0 上使用 MediaPlayer 加载音频流需要超过 10 秒

标签 android android-mediaplayer android-5.0-lollipop audio-streaming samsung-mobile

由于更新到 Android 5.0,MediaPlayer 无法在 Samsung Galaxy S5 上正常运行。启动音频流后加载时间超过 10 秒。

示例代码:

MediaPlayer mPlayer new MediaPlayer();
String url = "http://149.13.0.80:80/radio1.ogg";
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mPlayer.setDataSource(url);

mPlayer.prepare();

mPlayer.start();

如果我在服务中使用 MediaPlayer/使用 prepareAsync()/其他音频流,也会出现同样的问题。 Android 5 的 Nexus 4 没有这样的问题。 有什么解决办法吗?

最佳答案

首先,您的代码应该包含在 try-catch 中。所以你可能想做一个更新,比如

MediaPlayer mPlayer = new MediaPlayer();
        String url = "http://149.13.0.80:80/radio1.ogg";
        mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        try {
            mPlayer.setDataSource(url);
            mPlayer.prepare();
            mPlayer.start();
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

其次,如果您的 prepare() 停滞不前,您可以考虑使用包装在线程中的 prepare() 而不是 prepareAsync()。该设备可能正在执行一些挂起的行为,并试图停止 MP。添加 actionCancel 可能会有用。

private void actionCancel(){ 
            try { 
                mp.setDataSource(new String());
            } catch (Exception e) {
                e.printStackTrace();
                android.util.Log.d(TAG,"actionCancel(): mp.setDataSource() exception");
                mp.reset(); 
            } 
} 

关于android - 在 Samsung Galaxy S5 Android 5.0 上使用 MediaPlayer 加载音频流需要超过 10 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29023132/

相关文章:

android - Unresolved reference :AndroidX中的setLifecycleOwner

android - 使用 channel ID 时,世博会通知不起作用

android - 带有复选框和点击监听器的 ListView

android - 媒体播放器过早切断声音

未找到 Android L ViewAnimationUtils?

java - 使用 Android 开发工具更新 Eclipse v. 23

android - MediaPlayer 播放时 ProgressBar 被阻塞

android - 在 Activity 之间播放 MediaPlayer 音频,但在背景失去焦点并返回时暂停/恢复?

android - 如何在我的应用程序的文件资源管理器文件夹中添加应用程序图标

Android - 工具栏和状态栏作为内容更改的共享对象