gpt4 book ai didi

javascript - React native (Android) - 创建 URL.createObjectURL(blob)

转载 作者:行者123 更新时间:2023-12-05 02:47:03 28 4
gpt4 key购买 nike

我正在尝试创建一个 blob url 以将字符串用作 JwPlayer 字幕的文件。

字幕是这样加载的:

const playlistItem = {
...
tracks: [
{
file: 'https://myfakesite.org/subtitles.vtt',
label: 'en'
}
]
}

因为 jwplayer 不接受我的源代码 (subtitles.ass),所以我将 .ass 转换为 .vtt 结果为字符串。

像这样:

var vttRaw = `WEBVTT

00:00:25.520 --> 00:00:29.250
Naquele dia,
a humanidade foi lembrada...

00:00:35.110 --> 00:00:38.180
do terror de estar à mercê deles`;

由于 jwplayer 需要一个 url,我将这个字符串转换为 blob url:

//Generate blob
var blob = new Blob([vttRaw], {
type: "text/vtt; charset=utf-8"
});

//Generate url
var vtt_url = URL.createObjectURL(blob) + "#.vtt";

在网络浏览器中可以运行,但在 react-native-android 中会导致错误。

Possible Unhandled Promise Rejection (id: 0):
Error: Cannot create URL for blob!

blob error

我认为问题是生成一个 blob url,有人知道我能做什么吗?

最佳答案

我在 Android 版 React Native 中遇到了这个问题。以下适用于 iOS 但不适用于 Android

URL.createObjectURL(blob)

尝试传递 base64 数据而不是 url,如 this post .

也许是这样的:

//Generate blob
var blob = new Blob([vttRaw], {
type: "text/vtt; charset=utf-8"
});

const fileReaderInstance = new FileReader();
fileReaderInstance.readAsDataURL(blob);
fileReaderInstance.onload = () => {
base64 = fileReaderInstance.result;
vtt_data = base64;
}

关于javascript - React native (Android) - 创建 URL.createObjectURL(blob),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65216756/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com