首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MediaHTTPConnection: readAt 3110239 / 32768 => java.net.ProtocolException错误

MediaHTTPConnection: readAt 3110239 / 32768 => java.net.ProtocolException错误
EN

Stack Overflow用户
提问于 2015-11-06 14:02:02
回答 2查看 5.2K关注 0票数 6

我有一个应用程序,它只是播放歌曲从一个URL.This网址将创建使用NanoHTTP.This网址只是设备ip和端口地址的组合。

代码规范我刚刚收到这个URL作为Message.One,我得到了Message.One,并将这个URL提供给Media类。

代码语言:javascript
运行
复制
  try {

                if (mediaPlayer != null) {
                    mediaPlayer.stop();
                    mediaPlayer.reset();
                    mediaPlayer.release();
                    mediaPlayer = null;
                }
                if (handler != null) {
                    handler.removeCallbacks(notification);

                }
                mediaPlayer = new MediaPlayer();
                mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                // String url =  URLEncoder.encode(commandHelper.getSongDetails().getSongURL(), "UTF-8");
                String url = commandHelper.getSongDetails().getSongURL();
                Log.e("Tag", "Receiving Url  Data ::" + url);// Song URL ::: http://192.168.1.160:8085/
                mediaPlayer.setDataSource(url);
                mediaPlayer.prepare();
                mediaPlayer.start();

            } catch (IOException e) {

                DebugLog.e("Value ::" + e.getMessage());
                e.printStackTrace();
            }

我的网址就像http://192.168.1.160:8085/

问题

一切都很好,但是当我开始使用媒体播放器时,却得到了以下错误

  • W/MediaHTTPConnection: readAt 3110239 / 32768 => java.net.ProtocolException

而且我的设备挂了,设备也没有响应。我也尝试过mediaPlayer.prepareAsync(),mediaPlayer.prepare(FileDescriptor)来处理这个错误,但是我得到了相同的结果。

Note

这个问题是操作系统特有的,它只发生在5.0(棒棒糖)操作系统。

如果有人对这个问题有正确的解决办法,请帮助我。我几乎不想解决这个问题,但是我得到了同样的error.so,请帮助解决这个问题。

EN

回答 2

Stack Overflow用户

发布于 2017-09-06 07:23:48

对我来说,当数据源被两次使用时,这个问题就会发生。我通过禁用缓存来修复它。问题是缓存节省了糟糕的长度或位置信息或其他什么。不知道为什么可能是因为压缩。

我只在特定的mp3文件上遇到了这个问题(我还在研究为什么只有这些文件会受到影响)。

代码语言:javascript
运行
复制
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "audio/mp3"); // change content type if necessary
headers.put("Accept-Ranges", "bytes");
headers.put("Status", "206");
headers.put("Cache-control", "no-cache");
Uri uri = Uri.parse(yourContentUrl);
player.setDataSource(getApplicationContext(), uri, headers);
票数 8
EN

Stack Overflow用户

发布于 2016-03-21 08:30:36

它是指向源代码(和操作系统)的链接。

我为我的案例找到了一个解释: codec MPEG-4 ODSM,MPEG-4 SDSM。

与另一个来源(只有H.264,AAC),它正在工作。

链接问题:Android Marshmallow "Can't play this video" error

Android支持的格式:http://developer.android.com/guide/appendix/media-formats.html

因此,解决方案是尝试另一个来源或重新编码您的媒体。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33568542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档