- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用Frequency generator code产生了频率音。我的应用程序生成音调约13-14次后崩溃
package com.milind.myapp.gpstrackingservice;
import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioTrack;
import android.os.Handler;
import android.util.Log;
public class Tone
{
private static final String TAG = Tone.class.getSimpleName();
// originally from http://marblemice.blogspot.com/2010/04/generate-and-play-tone-in-android.html
// and modified by Steve Pomeroy <steve@staticfree.info>
private final float duration = .12f; // seconds
private final int sampleRate = 8000;
private final int numSamples = (int)(Math.ceil(duration * sampleRate));
private final double sample[] = new double[numSamples];
private double freqOfTone = 440; // hz
private final byte generatedSnd[] = new byte[2 * numSamples];
Handler handler = new Handler();
public void play(int freq)
{
// Use a new tread as this can take a while
freqOfTone = freq;
genTone();
try {
playSound();
}
catch (Throwable t)
{
Log.w(TAG, "Error in method Tone.play(freq)", t);
}
}
public void playSound()
{
final AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
sampleRate, AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT, numSamples,
AudioTrack.MODE_STATIC);
audioTrack.write(generatedSnd, 0, generatedSnd.length);
audioTrack.play();
}
public void genTone()
{
// fill out the array
for (int i = 0; i < numSamples; ++i)
{
sample[i] = Math.sin(2 * Math.PI * i / (sampleRate / freqOfTone));
}
// convert to 16 bit pcm sound array
// assumes the sample buffer is normalised.
int idx = 0;
for (final double dVal : sample)
{
// scale to maximum amplitude
final short val = (short) ((dVal * 32767));
// in 16 bit wav PCM, first byte is the low order byte
generatedSnd[idx++] = (byte) (val & 0x00ff);
generatedSnd[idx++] = (byte) ((val & 0xff00) >>> 8);
}
}
}
2018-10-17 15:14:38.099 3690-3690/com.milind.myapp.gpstrackingservice W/Tone: Error in method Tone.play(freq) java.lang.IllegalStateException: play() called on uninitialized AudioTrack. at android.media.AudioTrack.play(AudioTrack.java:1962) at com.milind.myapp.gpstrackingservice.Tone.playSound(Tone.java:47) at com.milind.myapp.gpstrackingservice.Tone.play(Tone.java:31) at com.milind.myapp.gpstrackingservice.MainActivity.onLocationChanged(MainActivity.java:155) at com.milind.myapp.gpstrackingservice.MyService.postLocationChange(MyService.java:207) at com.milind.myapp.gpstrackingservice.MyService.onLocationChanged(MyService.java:199) at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:291) at android.location.LocationManager$ListenerTransport.-wrap0(Unknown Source:0) at android.location.LocationManager$ListenerTransport$1.handleMessage(LocationManager.java:236) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6944) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
最佳答案
我认为您应该关闭audioTrack-> audioTrack.close();播放声音后。打开的audioTrack session 数是有限的。
关于android - 有人可以帮我解决这个在Android上产生频率音调的问题吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52861782/
我环顾了 Google 和 SO,但找不到这个...... 有没有一种方法可以在 Mac 上仅使用 Python 标准库来生成简单的音调(即蜂鸣声、方波、锯齿声)? 基本上,我正在尝试在文本角色扮演游
我搜索了很多术语和量刑,但找不到任何相关信息。所以无论如何:我怎样才能为警报(默认应用程序)获取默认或当前设置的音乐/音调/声音? 假设我每天早上醒来时都会播放闹钟歌曲:Song#1 使用默认闹钟应用
我正在读取来自麦克风的原始波流。 (这部分工作,因为我可以将它发送到扬声器并得到很好的回声。) 为简单起见,假设我想检测波形数据中的 DTMF 音调。实际上我想检测任何频率,而不仅仅是 DTMF 中的
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是偏离
Android 的新手。我有一个应用程序正在运行,我正在生成 DTMF 信号并解释微 Controller 生成的内容。我成功地生成了音调,但是音调是通过扬声器播放的,我想通过一个拼接的耳机插孔播放音
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 6 年前。 Improve this ques
我录制了几秒钟的音频,其中包含以相同频率生成的两个相似的音调。他们相隔几秒钟。我想做的是根据该音频文件的采样间隔,检测出第一声的结束和第二声的开始。假设以48KHz音频的16位带符号PCM和一个字节数
我有 wav 文件,使用 naudio 库我已经能够从 wav 文件中获取原始数据。 有谁知道如何循环检测 DTMF 音调的 block 中的数据? 最佳答案 NuGet 包 DtmfDetectio
我有一个使用 OpenEars API 读取文本的 iOS 应用程序。我使用的是最新版本 (1.2.5)。我无法弄清楚如何在阅读单词时改变音调(“即时”)。我创建了一个 slider 来控制音高。更改
如何在 iPhone 中以编程方式检测 dtmf 音调?。我想检测接收到的音频信号(麦克风输入)是否应该是 dtmf 音调? 请帮助我?我真的为此苦苦挣扎了两天。提前致谢...... 最佳答案 由于
我想在 android 中执行以下操作。可能吗? 1) 调用+xx xxxxxxx 2) 等待第一声结束 3) 插入通行证:xxxx 4)等待短高音结束 5) 按 1 直到听到特定的声音。 这里的音调
当对方在通话中按 1,2,3.....9 时,是否可以在 android 中获取 DTMF 音调?如果是,怎么办? 最佳答案 查看此 http://code.google.com/p/dtmf-dec
我目前正在研究汽车安全系统.... 我需要通过输入到外部数字电路的电话耳机产生 DTMF 音调。是否有任何 API 可以执行此操作?任何人都可以帮助.... 提前致谢... 最佳答案 我得到了答案..
我想在 php 中生成一个正弦波。但是构建我的 wav 我需要以字节为单位给出值。我不知道该怎么做: 这是我的代码: $freqOfTone = 440; $sampleRate = 44100; $
我正在尝试在 linphone 的 SIP 调用期间发送一系列 DTMF 音调,为 iPhone 编译,以便在我设置的本地交换机上进行一些调用管理。我从代码中看到各个数字发送 DTMF(线路上没有音频
我正在尝试从电话线上检测来电显示信息。收到的来电显示信息采用 DTMF 音调(而非 FSK)。我怎样才能检测到这个 DTMF 音调?电话和传真调制解调器可以吗?电话和传真调制解调器能够检测 FSK 信
这就是我所拥有的。它生成 5 秒 Au file具有 440 Hz 正弦波,灵感来自 this question . -- file: tone.hs import qualified Data.By
我有一个 double 组,这是对数组应用 FFT 的结果,其中包含我添加了 1000Hz 音调的 Wav 音频文件的音频数据。 我通过“数值食谱”中定义的 DREALFT 获得了这个数组。(我必须使
Tone.BufferSource:缓冲区未设置或未加载。此错误发生在 try/catch block 中。它只会在我不断或有时随机触发更新功能时发生。发生此错误时,我的音频会暂时关闭。 我的代码背后
我正在 iphone 上开发一个应用程序,我需要一种方法来检测通过麦克风传入的声音的音调。 (即 A#、G、C♭ 等)我以为我会使用 AVAudio,但我真的不知道,而且我在文档中找不到任何内容。 有
我是一名优秀的程序员,十分优秀!