我正在尝试实现自动录音功能,类似于Talking Tom应用程序.我使用以下代码从录音机读取输入并分析缓冲区:
float totalAbsValue = 0.0f;
short sample = 0;
numberOfReadBytes = audioRecorder.read( audioBuffer, 0, bufferSizeInBytes);
// Analyze Sound.
for( int i=0; i<bufferSizeInBytes; i+=2 )
{
sample = (short)( (audioBuffer[i]) | audioBuffer[i + 1] << 8 );
totalAbsValue += Math.abs( sample ) / (numberOfReadBytes/2);
}
// Analyze temp buffer.
tempFloatBuffer[tempIndex%3] = totalAbsValue;
float temp = 0.0f;
for( int i=0; i<3; ++i )
temp += tempFloatBuffer[i];
Run Code Online (Sandbox Code Playgroud)
现在我能够检测来自录音机的语音输入,我可以分析音频缓冲区.
缓冲区被转换为浮点值,如果它增加一定量,则假设背景中有一些声音并开始录制.但问题是该应用程序开始记录所有背景噪音,包括风扇/交流管声音.
任何人都可以帮我分析缓冲区来检测人声吗?或者还有其他方法可以从录音机输入中检测人声吗?
提前致谢,
我从活动A调用活动B,其中包含使用以下代码的视频视图:
Intent intent = new Intent(this, B.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivityForResult(intent, 0);
Run Code Online (Sandbox Code Playgroud)
我正在使用Intent.FLAG_ACTIVITY_NO_ANIMATION
以避免在调用新活动时转换动画.但它不适合我和黑屏在转型期间即将到来.有没有办法避免这种过渡动画和黑屏,以便用户不会知道在新屏幕中调用视频视图?
用户需要在我的应用程序的注册页面中输入其权重,为此创建水平滚动视图,中心元素数据将作为用户的高度(以英寸为单位).
我尝试从Android SpinnerWheel实现Spinner Wheel Library,但它只支持int
值,不支持分数.
我还尝试使用带有Center Lock库的Android HorizontalScrollView,但它不支持自动滚动.
任何人都可以建议一些示例或技巧来实现上面提到的滚动视图,中心元素值作为字段条目?
提前致谢!
与使用相同服务器端服务的iPhone App相比,HttpURLConnection.getInputStream需要花费大量时间。
以下代码用于该服务:
date= new java.util.Date();
Log.d("time","Time Stamp before posting "+new Timestamp(date.getTime()));
URL ur= new URL(url);
HttpURLConnection conn = (HttpURLConnection) ur.openConnection();
conn.setRequestProperty("Connection", "close");
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(getQuery(nameValuePairs));
writer.close();
os.close();
conn.connect();
StringBuffer response=null;
try{
Log.d("time","Time Stamp bfr InputStream "+new Timestamp(date.getTime()));
InputStream is = conn.getInputStream();
date= new java.util.Date();
Log.d("time","Time Stamp aftr InputStream "+new Timestamp(date.getTime()));
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
String line;
response = new StringBuffer();
while((line = …
Run Code Online (Sandbox Code Playgroud) 我正在使用 Javamail API 从 Gmail 服务器读取邮件。我正在将一封包含阿拉伯语内容的邮件从一个 Gmail ID 发送到另一个 Gmail ID。邮件的字符集编码类型是windows-1256。当我使用 Javamail 下载邮件时,我收到“??????”中的内容 格式而不是阿拉伯字符。我正在将下载的内容转换为 UTF-8 格式,但仍然无法正确显示。
提前致谢,
蒂姆
更新:
我使用以下代码来获取内容:
Object content = message.getContent();
if (message.isMimeType("text/html")
|| message.isMimeType("text/plain")) {
Al = (String) content;
}
Run Code Online (Sandbox Code Playgroud)
下载内容后,将使用以下代码进行 UTF-8 编码:
byte[] utf8Bytes = s.getBytes("UTF-8");
s = new String(utf8Bytes, "UTF-8");
Run Code Online (Sandbox Code Playgroud)
更新:我目前用于阅读邮件内容的完整代码
String gmailMultipartMailDownload(Multipart multipart, String Uids)
throws SocketException, UnsupportedDataTypeException, UnsupportedEncodingException {
String Content = new String("");
try {
int numParts = multipart.getCount();
for (int k = 0; k < numParts; k++)
{
BodyPart bodyPart …
Run Code Online (Sandbox Code Playgroud) 我正在创建一个在我的libs文件夹中使用3个jar文件的Application.
当我运行应用程序时,我收到错误"Dx trouble processing"javax/xml XMLConstants.class":"
"在不构建核心库时,不明智或错误地使用核心类(java.*或javax.*)."
和
"转换为Dalvik格式失败,错误1"
我尝试删除JAR文件,但它导致代码中的错误.
请建议我在这里需要做些什么来解决这个问题.
ES Strings的XML资源文件有一些更新.使用这些String更改后,Build失败并显示以下错误:
Error:com.github.javaparser.TokenMgrError: Lexical error at line 5563, column 57. Encountered: "\u00b3" (179), after : ""
Run Code Online (Sandbox Code Playgroud)
该错误表明该问题与Superscript char\u00b3有关,但是,我没有在资源文件中添加它.
要调试此问题,我使用stacktrace直接从终端运行Gradlew,它提供了以下详细信息:
Caused by: com.github.javaparser.TokenMgrError: Lexical error at line 5563, column 57. Encountered: "\u00b3" (179), after : ""
at com.github.javaparser.ASTParserTokenManager.getNextToken(ASTParserTokenManager.java:2480)
at com.github.javaparser.ASTParser.jj_scan_token(ASTParser.java:9115)
at com.github.javaparser.ASTParser.jj_3R_92(ASTParser.java:5504)
at com.github.javaparser.ASTParser.jj_3_5(ASTParser.java:5574)
at com.github.javaparser.ASTParser.jj_2_5(ASTParser.java:5198)
at com.github.javaparser.ASTParser.ClassOrInterfaceBodyDeclaration(ASTParser.java:944)
at com.github.javaparser.ASTParser.ClassOrInterfaceBody(ASTParser.java:865)
at com.github.javaparser.ASTParser.ClassOrInterfaceDeclaration(ASTParser.java:470)
at com.github.javaparser.ASTParser.ClassOrInterfaceBodyDeclaration(ASTParser.java:932)
at com.github.javaparser.ASTParser.ClassOrInterfaceBody(ASTParser.java:865)
at com.github.javaparser.ASTParser.ClassOrInterfaceDeclaration(ASTParser.java:470)
at com.github.javaparser.ASTParser.TypeDeclaration(ASTParser.java:398)
at com.github.javaparser.ASTParser.CompilationUnit(ASTParser.java:203)
at com.github.javaparser.JavaParser.parse(JavaParser.java:111)
at com.github.javaparser.JavaParser.parse(JavaParser.java:158)
at com.github.javaparser.JavaParser.parse(JavaParser.java:177)
at butterknife.plugin.FinalRClassBuilder.brewJava(FinalRClassBuilder.java:36)
at butterknife.plugin.FinalRClassBuilder$brewJava.call(Unknown Source)
at butterknife.plugin.ButterKnifePlugin$_apply_closure1$_closure2$_closure3$_closure4.doCall(ButterKnifePlugin.groovy:34)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:596)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:577)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:95) …
Run Code Online (Sandbox Code Playgroud)