提供的值“moz-chunked-arraybuffer”不是有效的“responseType”
Posted
技术标签:
【中文标题】提供的值“moz-chunked-arraybuffer”不是有效的“responseType”【英文标题】:The provided value 'moz-chunked-arraybuffer' is not a valid 'responseType 【发布时间】:2020-07-30 02:13:25 【问题描述】:第一次在这里提出问题。 我正在使用 react native 和 expo 构建一个应用程序,并且我已经实现了一个从 Icecast 流播放的音频播放器。
我现在想要实现的是从 icecast 流中获取元数据,所以我安装了这个库:https://github.com/ghaiklor/icecast-parser。 但是,由于它使用 http、events 和 stream 模块形成节点,我安装了以下包以使它们在 react native 中:https://github.com/parshap/node-libs-react-native/,它设法让解析库工作。
现在,我遇到的问题是,在 icecast-parser 对流发出 http 请求后,我收到以下错误:
“提供的值 'moz-chunked-arraybuffer' 不是有效的 'responseType'。” “提供的值 'ms-stream' 不是有效的 'responseType'。”阅读https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestResponseType 后,我认为问题在于,出于某种原因,来自请求的响应属于那种类型,这就是给我带来错误的原因。 因此,我正在尝试寻找是否有办法对其进行改造或使其发挥作用,并想知道您是否有想法或可以为我指明正确的方向?
这是发生错误的代码部分:
_makeRequest ()
const request = (this.getConfig('url').indexOf('https://') === 0) ?
https.request(this.getConfig('url')) : http.request(this.getConfig('url'));
request.setHeader('Icy-MetaData', '1');
request.setHeader('User-Agent', this.getConfig('userAgent'));
request.once('socket', function (socket)
socket.once('end', this._onSocketEnd.bind(this));
.bind(this));
console.log("I get here")
request.once('response', this._onRequestResponse.bind(this));
console.log("I don't get here")
request.once('error', this._onRequestError.bind(this));
request.end();
return this;
_onRequestResponse (response)
console.log("not getting here")
const icyMetaInt = response.headers['icy-metaint'];
if (icyMetaInt)
const reader = new StreamReader(icyMetaInt);
reader.on('metadata', metadata =>
this._destroyResponse(response);
this._queueNextRequest(this.getConfig('metadataInterval'));
this.emit('metadata', metadata);
);
response.pipe(reader);
this.emit('stream', reader);
else
this._destroyResponse(response);
this._queueNextRequest(this.getConfig('emptyInterval'));
this.emit('empty');
return this;
【问题讨论】:
【参考方案1】:尝试使用这行代码来抑制警告
LogBox.ignoreLogs
(['Warning: The provided value \'moz',
'Warning: The provided value \'ms-stream'
])
【讨论】:
【参考方案2】:显然,问题来自于该库是为 nodeJS 构建的,因此即使我添加了一个将所需库导入 react-native 的包,代码也不起作用。使用为 nodeJS 构建的不同解析库对此进行了测试。
【讨论】:
以上是关于提供的值“moz-chunked-arraybuffer”不是有效的“responseType”的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI:@Environment 未在视图层次结构中接收提供的值
多次调用 AlarmManager.setRepeating 提供相同的 Intent/PendingIntent 额外值,但我提供了不同的值