小编MaX*_*leR的帖子

显示通话中拨号盘 - 在通话期间拨打号码 - DTMF

我接听电话后想拨打一个号码,通常由通话拨号盘完成.

我尝试了以下方法,但是开始拨打新的电话(ACTION_VIEW也是如此).

Intent dial = new Intent(Intent.ACTION_DIAL);
dial.setData(Uri.parse("tel:9"));
startActivity(dial);
Run Code Online (Sandbox Code Playgroud)

我的猜测是"tel:"触发了一个新的拨号序列.我可能需要的是显示通话中的拨号盘并模拟击键.

任何人?

编辑:我发现这个问题 启动InCallScreen活动 让我觉得我需要发送一个keydown事件到'com.android.phone.InCallScreen',但我不知道该怎么做.这也是一个直接相关的问题,已经(并且仍然)开放多年:http: //code.google.com/p/android/issues/detail?id = 1428

java android dtmf android-intent

8
推荐指数
1
解决办法
1293
查看次数

在C#中快速/交错数组

我正在寻找de/interleave缓冲区的最快方法.更具体地说,我正在处理音频数据,所以我试图优化分配/组合通道和FFT缓冲区的时间.

目前我正在为每个数组使用一个带有2个索引变量的for循环,所以只加上操作,但所有托管数组检查都不会与C指针方法进行比较.

我喜欢Buffer.BlockCopy和Array.Copy方法,这些方法在处理通道时会花费大量时间,但是阵列无法拥有自定义索引器.

我试图找到一种方法来制作一个数组掩码,它将是一个带有自定义索引器的虚假数组,但在我的FFT运算中使用它时证明速度慢了两倍.我想编译器在直接访问数组时可以提取很多优化技巧,但无法优化通过类索引器进行访问.

我不想要一个不安全的解决方案,尽管从它的外观来看,这可能是优化此类操作的唯一方法.

谢谢.

这是我现在正在做的事情:

private float[][] DeInterleave(float[] buffer, int channels)
{
    float[][] tempbuf = new float[channels][];
    int length = buffer.Length / channels;
    for (int c = 0; c < channels; c++)
    {
        tempbuf[c] = new float[length];
        for (int i = 0, offset = c; i < tempbuf[c].Length; i++, offset += channels)
            tempbuf[c][i] = buffer[offset];
    }
    return tempbuf;
}
Run Code Online (Sandbox Code Playgroud)

c# arrays audio split

6
推荐指数
1
解决办法
3524
查看次数

标签 统计

android ×1

android-intent ×1

arrays ×1

audio ×1

c# ×1

dtmf ×1

java ×1

split ×1