我试图在AS3中将8000hz,16位wav文件上采样到11025hz.在这一点上,我并不关心应用我知道最终需要的低通滤波器.
我一直在引用这个wiki页面.
这是我到目前为止所做的:
然而,当我去玩新的wav时,它是难以区分的噪音.这是我的代码:
const sourceRate:uint = 8000;
const targetRate:uint = 11025;
var lcm:uint = lcm(targetRate, sourceRate); // = 3528000
var l:uint = lcm / sourceRate; // = 441
var m:uint = lcm / targetRate; // = 320
// upsample by factor of l
var upsampleData:ByteArray = new ByteArray();
upsampleData.endian = Endian.LITTLE_ENDIAN;
// originalWavData is a ByteArray of the source wav data
// fill is a ByteArray that contains 440 zeroes, written using …Run Code Online (Sandbox Code Playgroud) 我有一个非常慢的表单,因为表单上放置了许多控件.
因此,表单需要很长时间才能加载.
如何首先加载表单,然后显示它,并在加载延迟时显示另一个表单,其中包含"正在加载......请等待.?"的消息.
这真让我抓狂.我有一个来自多个脚本的库,它包含以下功能:
function lib_open_dataset([string] $sql) {
$ds = new-object "System.Data.DataSet"
$da = new-object "System.Data.SqlClient.SqlDataAdapter" ($sql, $_conn_string)
$record_count = $da.Fill($ds)
return $ds
}
Run Code Online (Sandbox Code Playgroud)
这几乎被称为无处不在,它工作得很好,除了我通常必须这样做:
$ds = lib_open_dataset($some_sql)
$table = $ds.Tables[0]
foreach ($row in $table.Rows) {
# etc
}
Run Code Online (Sandbox Code Playgroud)
所以我创建了一个新的简单包装函数,以避免解除引用第一个表的额外步骤:
function lib_open_table([string] $sql) {
$ds = lib_open_dataset $sql
return $ds.Tables[0]
}
Run Code Online (Sandbox Code Playgroud)
问题是,从这里返回的是由于某种原因而不是表本身的表的Rows集合.这会导致上面写的行循环失败并显示"无法索引到空数组".例外.经过多次试验和错误,我发现这是有效的:foreach
foreach ($row in $table) {
# etc
}
Run Code Online (Sandbox Code Playgroud)
需要注意的区别$table.Rows,只是$table在foreach声明.这有效.因为$table实际上指向Rows集合.如果声明
return $ds.Tables[0]
Run Code Online (Sandbox Code Playgroud)
假设是正确的,为什么函数返回表对象的子集合而不是表本身?
我猜测Powershell功能的工作原理显然会引起这种情况,但我无法弄清楚是什么.
为什么这样呢
int x = 2;
for (int y =2; y>0;y--){
System.out.println(x + " "+ y + " ");
x++;
}
Run Code Online (Sandbox Code Playgroud)
打印与此相同?
int x = 2;
for (int y =2; y>0;--y){
System.out.println(x + " "+ y + " ");
x++;
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,正如我所理解的那样,首先使用"按原样"增加后增量.是否先添加预增量然后再使用.为什么这不适用于for循环的主体?
我试图MouseButtonEventArgs.GetPosition()用Moq 模拟,但我一直收到这个错误:
Run Code Online (Sandbox Code Playgroud)System.ArgumentException: Invalid setup on a non-overridable member: m => m.GetPosition(It.IsAny<IInputElement>()) at Moq.Mock.ThrowIfCantOverride(Expression setup, MethodInfo methodInfo) at Moq.Mock.<>c__DisplayClass12`2.<Setup>b__11() at Moq.PexProtector.Invoke<T>(Func`1 function) at Moq.Mock.Setup<T1,TResult>(Mock mock, Expression`1 expression) at Moq.Mock`1.Setup<TResult>(Expression`1 expression)
这是我设置模拟的代码:
var mockMbEventArgs = new Mock<MouseButtonEventArgs>();
mockMbEventArgs.Setup(m => m.GetPosition(It.IsAny<IInputElement>())).Returns(new Point(10.0, 10.0));
Run Code Online (Sandbox Code Playgroud)
我不确定我做错了什么,有没有人对如何做到这一点有任何建议?
我正在制作一个支持ajax的实验室调度程序,而且一些ajax操作并不是很快.
在Gmail中,当您转到收件箱,发送消息等时,浏览器会像加载一样(在FF中停止按钮变为启用状态,出现进度条),但它不在新页面上,而是通过AJAX完成.
他们如何做到这一点?我有一个小的spinny指示器,但是让浏览器像加载它一样很好.有任何想法吗?
我有一个SQL查询SELECT * FROM table WHERE column LIKE '%pdd%'.
问题是我需要得到所有结果,不包括那些以"pdd"开头的结果,我的意思是找到"pdd"不在开头的所有内容.怎么可能呢?
当它不在列的开头时,我需要匹配"pdd".
我想创建一个简单的二叉树,如下图所示:

基本上是空的,但最后的值所以我创建了根列表:
root = [list(),list()]
Run Code Online (Sandbox Code Playgroud)
并制作了一个递归函数来填充所有内容:
def TF(nodeT,nodeF , i):
if i == 35 : return 'done'
TF(nodeT.append([]),nodeT.append([]) , i = i + 1) #append T , F in the true node
TF(nodeF.append([]),nodeT.append([]) , i = i + 1) #append T , F in the false node
Run Code Online (Sandbox Code Playgroud)
我的问题是简单的list.append(something)在python中返回"None"所以只要再次调用该函数(TF(None,None,1))None.append不存在.
我该如何解决这个问题?提前致谢.
如果你对如何提高效率或以其他方式提出任何建议(从来没有测试我的代码,所以我不知道它将如何做)
(我的最终目标是拥有一个真假地图和一个参数:"FTFTFFFTFTF"会显示字母"M"等...)