【问题标题】:Android Audio m3u8 Streaming - HOW TOAndroid 音频 m3u8 流媒体 - 如何
【发布时间】:2013-11-26 14:45:18
【问题描述】:

作为标题,我如何在没有 vitamio 的情况下在 Android 上流式传输 m3u8 音频? (在 Android 2.3+ 上)。我已经看到一些应用程序可以流式传输我的链接http://4metest1-view.4me.it/api/xpublisher/resources/weebopublisher/getContentDescriptor.m3u8?clientId=4metest1&contentId=b55f7d74-cd81-48ce-9390-d9ffd5c49281&channelType=STREAMHTTPIOS&v=4 像 VLC 或 aqua Player,但我无法设置 mMediaPlayer 来重现它。

【问题讨论】:

  • 您使用的是 Icecast 或 Shoutcast 等流媒体服务吗?
  • 不,不是广播,它只是 HLS HTTP 流,但媒体播放器不会重现它。同一台服务器可以串流m3u8的音视频,这个视频流在android中没有任何问题。这个 m3u8 音频只有是的 :( 我能做什么?
  • 在 Android 2.3 & 3.0 中,你必须使用 httplive:// 方案,在 3.1 中使用 http://。你测试的是什么版本的android?
  • 现在我正在 S3 和 4.1.2、S2 和 4.2 以及 nexus 和 4.3 上进行测试。在nexus 4 中,我只需将http-m3u8 传递给媒体播放器,就可以通过电话库重现音乐。在 s2 和 s3 中,图库播放器说“无法再现视频”。我不明白为什么。
  • 你能传入源类型以确保它不会尝试视频吗? mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

标签: android streaming m3u8


【解决方案1】:

使用 VideoView 播放带有轻松音乐的音频 :)

myVideoView = (VideoView)this.findViewById(R.id.myVideoView);
            MediaController mc = new MediaController(this);
            myVideoView.setMediaController(mc);                     
            urlStream = "http://4metest1-view.4me.it/api/xpublisher/resources/weebopublisher/getContentDescriptor.m3u8?clientId=4metest1&contentId=b55f7d74-cd81-48ce-9390-d9ffd5c49281&channelType=STREAMHTTPIOS&v=4";
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    myVideoView.setVideoURI(Uri.parse(urlStream)); 
                }
            });

【讨论】:

    【解决方案2】:

    您的 m3u8 不是真正的 HLS 文件。它只是一个指向单个 MP3 的播放列表指针

    http://4metest1-4me.weebo.it/ios/Dance_of_the_Yao_People_3_JIDMQ7.mp3
    

    您可以使用媒体播放器直接从源流式传输,也可以在您的代码中解析文件 m3u8 文件以提取个人 URL

    url url = new URL(" http://4metest1-view.4me.it/api/xpublisher/resources/weebopublisher/getContentDescriptor.m3u8?clientId=4metest1&contentId=b55f7d74-cd81-48ce-9390-d9ffd5c49281&channelType=STREAMHTTPIOS&v=4");
    
    InputStream m3u8 = (InputStream) url.getContent();      
    BufferedReader br = new BufferedReader(new InputStreamReader(M3U8));
    for(int i = 0; i < 2; ++i)
    {
        br.readLine();
    }|
    readLine(); //this parses the third line of the playlist
    br.close();
    url = new URL(baseURL.concat(target)); 
    

    【讨论】:

    • 对不起,这不是我要找的。该链接只是 url 配置的一个示例,因为我需要它用于网络广播(NO SHOUTCAST),所以我无法找出每个 mp3 片段。
    • 好的,所以您正在尝试创建和 Internet Radio 流?您没有使用任何类型的广播代理吗?只是直接播放列表链接?
    • 我正在尝试在我的 android 设备中播放使用 HLS 协议提供的点播音频流。问题不在于我发布的 m3u8:实际上我可以使用 IOS 设备、VLC 和其他 HLS 播放器播放它,例如 osmfhls.kutu.ru。我注意到我可以播放 HLS 点播视频流,但如果流只是音频,则它不起作用。
    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 2015-02-11
    • 2011-07-23
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多