Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 在as3中编写16位字节数组_Actionscript 3_Bytearray - Fatal编程技术网

Actionscript 3 在as3中编写16位字节数组

Actionscript 3 在as3中编写16位字节数组,actionscript-3,bytearray,Actionscript 3,Bytearray,我试图将以下16位WAV头数据写入16位字节数组。有人知道如何做到这一点吗?我正在使用ActionScript3 52 49 46 54 00 13 00 57 41 56 45 62 65 78 74 5A 02 我正在做的是尝试将正确的字节数组传递给这个mp3编码器(),让它写出一个mp3。如果我使用他们的示例,我可以通过filereference打开一个16位WAV文件,并将该bytearray传递给编码器以导出mp3。但是,我想创建我自己的bytearray,并将其传入并创建mp3。使

我试图将以下16位WAV头数据写入16位字节数组。有人知道如何做到这一点吗?我正在使用ActionScript3

52 49 46 54 00 13 00 57 41 56 45 62 65 78 74 5A 02


我正在做的是尝试将正确的字节数组传递给这个mp3编码器(),让它写出一个mp3。如果我使用他们的示例,我可以通过filereference打开一个16位WAV文件,并将该bytearray传递给编码器以导出mp3。但是,我想创建我自己的bytearray,并将其传入并创建mp3。使用HxD,我复制了同一个16位WAV文件的页眉和页脚,并将其作为字节数组粘贴到flash中,但当我将其传递到编码器时,它冻结了编译,并出现以下错误:

  Error #1502: A script has executed for longer than the default timeout period of 15 seconds.

所以,我认为我的问题是如何格式化我要传递的bytearray。。。有什么想法吗?再次感谢你的帮助

我想你想要全部18个字节(你的问题是16位)

等等。只需按照剩余15个字节的模式


例如,您显示的两个数字中的每一个,“5A”实际上代表一个十六进制字节。需要0x来告诉Flash您使用的是十六进制值——否则,AS3会认为您使用的是十进制值。

为什么不自动完成繁琐的工作

var header:String = "52 49 46 46 54 00 13 00 57 41 56 45 62 65 78 74 5A 02";

var headerParts:Array = header.split(" ");
var bytes:ByteArray = new ByteArray();

for each (var s:String in headerParts)
{
    bytes.writeByte(parseInt(s, 16));
}

现在字节包含你的头。

我正试图将正确的字节数组传递给mp3编码器(code.google.com/p/flash kikko/),让它写出mp3。如果我用他们的例子,我可以通过filereference打开一个16位的WAV文件,并将该字节数组传递给编码器以导出mp3。。。但是我想创建我自己的bytearray,并将其传递给用户,然后创建mp3。使用HxD,我复制了同一个16位WAV文件的页眉和页脚,并将其作为字节数组粘贴到flash中,但当我将其传递到编码器时,它冻结了编译,我得到了错误-脚本的执行时间超过了默认的15秒超时时间。
var header:String = "52 49 46 46 54 00 13 00 57 41 56 45 62 65 78 74 5A 02";

var headerParts:Array = header.split(" ");
var bytes:ByteArray = new ByteArray();

for each (var s:String in headerParts)
{
    bytes.writeByte(parseInt(s, 16));
}