我需要能够在Android中使用麦克风创建WAV文件.目前,我遇到了很多麻烦.到目前为止,这是我的情况.我正在使用micDroid项目代码的一部分进行记录:
//read thread
int sampleRate = 44100;
int bufferSize = AudioRecord.getMinBufferSize(sampleRate,android.media.AudioFormat.CHANNEL_CONFIGURATION_MONO,android.media.AudioFormat.ENCODING_PCM_16BIT);
AudioRecord ar = new AudioRecord(AudioSource.MIC,sampleRate,android.media.AudioFormat.CHANNEL_CONFIGURATION_MONO,android.media.AudioFormat.ENCODING_PCM_16BIT,bufferSize);
short[] buffer = new short[bufferSize];
ar.startRecording();
while(isRunning){
try{
int numSamples = ar.read(buffer, 0, buffer.length);
queue.put(new Sample(buffer, numSamples));
} catch (InterruptedException e){
e.printStackTrace();
}
}
//write thread
int sampleRate = 44100;
WaveWriter writer = new WaveWriter("/sdcard","recOut.wav",sampleRate,android.media.AudioFormat.CHANNEL_CONFIGURATION_MONO,android.media.AudioFormat.ENCODING_PCM_16BIT);
try {
writer.createWaveFile();
} catch (IOException e) {
e.printStackTrace();
}
while(isRunning){
try {
Sample sample = queue.take();
writer.write(sample.buffer, sample.bufferSize);
} catch (IOException e) {
//snip
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常,但最终结果可识别地包含我所说的,但它是可怕的扭曲.这是大胆的屏幕上限(WMP拒绝播放文件).

任何帮助将不胜感激,如果您需要更多代码/信息,请告诉我. …
使用C++,我可以在头文件中有一个类定义,并通过包含头文件来拥有多个实现文件.
使用C#,似乎没有这样的头文件,因为一个类应该包含定义/实现.
我想知道行数是否可以非常大,因为不能将类分成多个文件.我对么?我的意思是,在某些情况下,不能将类设计改为具有较小的类.在这种情况下,有没有办法解决这个问题?
如果没有图表数据,有没有办法在MS Chart Control上显示"默认"消息?
我有一个图表,有一些控件允许用户选择不同的日期范围.如果在该日期范围内没有要绘制的数据,它目前只显示任何内容(或者至少显示图例和背景,但就是这样.)
我希望有一条消息说"这段时间没有数据"或者其他东西.
谢谢,
本
目前我有一个不由我管理的数据库,我无法对其进行任何更改,id字段是一个smallint 2 unsigned,最多可以为65535个id条目.
我的问题是,由于上述限制,我需要重复使用ID,如何按顺序获取下一个可用的ID,或者如何管理具有上述限制的插入?
我正在尝试将文件从一个目录复制到另一个目录,并根据文件创建日期进行测试.
File.Copy(fileName, directory + fileNameOnly, true);
Run Code Online (Sandbox Code Playgroud)
当我检查创建日期以确保它不超过5天时,我的程序中会出现此问题.
FileInfo file = new FileInfo(fileName);
if (file.CreationTime.AddHours(120) < DateTime.Now) {}
Run Code Online (Sandbox Code Playgroud)
我已经看到复制后的创建日期设置为1980-01-01.这对我的要求没有用,因为我希望从原始文件维护创建日期.是否有另一种比较日期的方法,或者是丢失创建日期值的副本.
我想我的问题是,我怎样才能保持创作日期?
在典型的文件匹配代码中:
while (false !== ($file = readdir($handle))) {
if ($file !== "." && $file !== ".." && fnmatch($mask, $file)) {
$dirList[] = $file;
}
}
Run Code Online (Sandbox Code Playgroud)
我试图使用这样的多文件扩展名模式:
$mask = "*.{jpg,png,gif}";
Run Code Online (Sandbox Code Playgroud)
但它不起作用。没有文件匹配。这很奇怪,因为相同的模式在终端中工作得很好。它也可以与 glob() 完美配合,返回我想要的文件。我知道其余代码没有任何问题,因为使用“*.jpg”作为掩码也适用于 fnmatch。难道 fnmatch 不应该支持 shell 中可用的相同模式吗?
我需要一个正则表达式来捕获给定的 URL SLD。
例子:
jack.bop.com -> bop
bop.com -> bop
bop.de -> bop
bop.co.uk -> bop
bop.com.br -> bop
Run Code Online (Sandbox Code Playgroud)
所有波普:)。因此,此正则表达式需要忽略 ccTLD、gTLD和ccSLD。后者是困难的部分,因为我想让正则表达式尽可能不复杂。
第一个任务是删除 ccTLD,然后删除 gTLD,然后检查 ccSLD 并删除它们(如果存在)。
任何帮助深表感谢 :)
--
如果有帮助,ccTLD 会通过以下方式进行匹配:
\.([a-z]{2})$
Run Code Online (Sandbox Code Playgroud)
gTLD 的匹配方式是:
\.([a-z]{3-6})$
Run Code Online (Sandbox Code Playgroud)
幸运的是,这是两种互斥的模式。
我有:
class C:
aaa=2
class B:
def __init__ (self,name):
self.name
self.value
Run Code Online (Sandbox Code Playgroud)
我如何定义类,C所以当我动态地将属性设置为实例时,它会创建类的属性实例B.和属性类的名称B必须具有属性name的类,新属性的名称相同字符串C和属性value的B实例必须有什么价值,在类的实例的新属性集C.
必须给我这个结果:
>> c=C()
>> c.whatever= 'strinstrinsstring'
>> isinstance(c.whatever,B)
True
>> c.whatever.value
'strinstrinsstring'
>>c.whatever.name
'whatever'
Run Code Online (Sandbox Code Playgroud) 只是把这个出来进行辩论.
我得到了单元测试.有时感觉很费时间,但我都是为了好处.
我使用IoC进行了包含存储库层和服务层的应用程序设置,并且我已经对这些方法进行了单元测试.
现在我知道隔离我的单元测试方法的好处,因此几乎没有依赖于其他方法.
我得到的问题是这个.如果我只通过我的服务层方法访问我的存储库方法,那么只测试服务层不够好吗?我正在测试测试数据库.
难道它不被认为是你只需要测试你的公共方法的想法的延伸吗?也许我只是想跳过一些测试;)
我在SQL Server数据库中使用了一个字段名-不知道它是表字段还是存储过程参数。是否可以对数据库运行查询以在表和存储过程中查找候选字段?
c# ×2
java ×2
.net ×1
android ×1
asp.net ×1
file-io ×1
header-files ×1
javascript ×1
mschart ×1
mysql ×1
php ×1
python ×1
regex ×1
sql ×1
sql-server ×1
unit-testing ×1
wav ×1