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

Android 3.0上的HLS(http直播)和搜索

岳刚洁
2023-03-14

我们有一个提供程序,为我们提供HLS流的m3u8文件(最初用于iOS应用程序)。

Android 3.0支持http直播(http://developer.android.com/guide/appendix/media-formats.html)-事实上,我们可以使用Android 3.0上的标准VideoView播放这些m3u8文件。

编辑:Android似乎将其视为“实时”视频馈送,并禁用查找或计算内容长度的能力。(iOS让您在流中查找没有问题)

有没有办法强制android 3.0在这些文件中寻找?

以下是供其他人测试的示例活动:

import android.app.Activity;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;

public class SandboxActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        VideoView vw = (VideoView) findViewById(R.id.videoView);
      vw.setVideoPath("http://devimages.apple.com/iphone/samples/bipbop/gear4/prog_index.m3u8"); 
        vw.setMediaController(new MediaController(this));
        vw.requestFocus();
        vw.start();
    }
}

和一个示例布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center" android:id="@+id/root">

    <VideoView
        android:id="@+id/videoView"
        android:layout_width="wrap_content"
        android:layout_height="match_parent" />
</RelativeLayout>

这是使用苹果的HLS链接示例。

共有3个答案

孟俊晖
2023-03-14

我不确定,但由于VideoView不支持为您的情况查找,您可以尝试一些不同的选项,如:http://wiki.videolan.org/AndroidCompile(这很容易编译)

姚钊
2023-03-14

对不起,伙计们,你们想从石头上取血。Android 3.0支持的HLS子集非常有限,为了支持在直播流中搜索,你需要一个比谷歌提供的更好的HLS客户端。

令狐和裕
2023-03-14

看看这一页(你也提到过)

它说:

  • 协议版本3(Android 4.0及以上)
  • 协议版本2(Android 3. x)

在这里你可以检查HLS的草稿。你可以在页面顶部选择一个版本。

对seeking的首次引用出现在草案3中(与草案2 Android 3.x相比)

日期和时间的值提供了媒体时间线到适当挂钟时间的信息映射,可用作寻求的基础

只是为了确保。我并没有看完整个草稿。但是,我的猜测是,Android在Android3.0中很早就实现了草案,他们可能已经部分实现了草案,这足以发挥作用,但还不足以寻求。

我不认为你有一个简单的解决方案,除了引入第三方HLS客户端(如vipw所建议的)

 类似资料:
  • 我正在尝试从苹果示例直播流URL播放HLS流。 我在信息中添加了ATS异常。plist。 当AVPlayer开始准备播放应用程序崩溃时。以下例外。

  • 上传新文档 请求header POST /v1/activities/{频道id}/uploadDoc Authorization:Bearer {ACCESS TOKEN} 注: 请将上方的{ACCESS TOKEN}替换为您的ACCESS TOKEN 请将"{频道id}"替换您需要获取的频道id 请求payload 请使用 multipart/form-data Filedata -> 文件

  • 微信文档:https://developers.weixin.qq.com/miniprogram/dev/framework/liveplayer/live-player-plugin.html tips:微信规定以下两个接口调用限制共享 500次/天 建议开发者自己做缓存,合理分配调用频次。 获取直播房间列表 $app->live->getRooms(); 获取回放源视频 $roomId =

  • LivePlayerContext jd.createLivePlayerContext(string id, Object this) 创建live-player 上下文 LivePlayerContext 对象。 参数 string id live-player 组件的 id Object this 在自定义组件下,当前组件实例的this,以操作组件内 live-player 组件 返回值 L

  • Cocos Creator 从 v2.0.6 开始支持一键集成 Facebook 服务,包括 Facebook Live Video 和 Facebook Audience Network。这两个 SDK 目前支持 Android 和 iOS 平台。 Creator 为用户完成的主要工作: 在 Cocos Creator 项目设置面板中提供一键式集成 Facebook Live Video 和 F

  • 通过最近的ffmpeg主分支(commit7fcbeb),我们可以使用以下方法生成主播放列表 -master_pl_name 选项。但我无法生成具有不同配置文件的主播放列表。尝试使用 -var_stream_map 我们如何使用这些选项来创建具有不同配置文件的主播放列表? 我正在尝试使用下面的ffmpeg命令: