我正在尝试使用存储在blob中的Flash对象,但是我使用@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState); //this is line 23 from the stacktrace
...
返回的URL作为embed标记的URL.createObjectURL
的方法只会导致浏览器将blob下载为文件。
这是我生成的HTML:
src
这里用于生成Blob和<object height="500" width="1000">
<embed height="500" width="1000" src="blob:http://127.0.0.1:34721/1fa7a01c-25b7-4ad0-ba1d-1ddef61617ce"/>
</object>
标记的JavaScript:
object
其中var blob = new Blob(data, {
type: 'application/x-shockwave-flash'
});
document.body.innerHTML += '<object height="500" width="1000" ><embed height="500" width="1000" src="' + URL.createObjectURL(blob) + '"/></object>'
是data
的数组,每个数组包含256个字节的二进制数据。
有问题的blob的类型为Uint8Array
,与原始的application/x-shockwave-flash
文件相同(我检查过)。用于代替对象URL时,文件本身可以正常工作。
根据我的阅读,指向blob的Object URL可以在普通URL的任何地方使用。嵌入标签是否是例外?
答案 0 :(得分:2)
embed标签可能会错过通常从响应标头获取的mime类型。尝试设置&#34;输入=&#34; application / x-shockwave-flash&#34;作为嵌入代码中的属性。
尽管如此,Flash还没有得到广泛支持,我会在浏览器之间进行测试,看看它是否是同样的错误。您可能需要将类型添加到旧版浏览器中的object标记。