小编Tim*_*son的帖子

从音频文件输入中检测人声

我正在尝试实现自动录音功能,类似于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)

现在我能够检测来自录音机的语音输入,我可以分析音频缓冲区.

缓冲区被转换为浮点值,如果它增加一定量,则假设背景中有一些声音并开始录制.但问题是该应用程序开始记录所有背景噪音,包括风扇/交流管声音.

任何人都可以帮我分析缓冲区来检测人声吗?或者还有其他方法可以从录音机输入中检测人声吗?

提前致谢,

android android-audiorecord

28
推荐指数
2
解决办法
1万
查看次数

禁用活动之间的过渡动​​画

我从活动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以避免在调用新活动时转换动画.但它不适合我和黑屏在转型期间即将到来.有没有办法避免这种过渡动画和黑屏,以便用户不会知道在新屏幕中调用视频视图?

java android android-intent

27
推荐指数
2
解决办法
4万
查看次数

自定义水平滚动视图与选择器

用户需要在我的应用程序的注册页面中输入其权重,为此创建水平滚动视图,中心元素数据将作为用户的高度(以英寸为单位).

在此输入图像描述

我尝试从Android SpinnerWheel实现Spinner Wheel Library,但它只支持int值,不支持分数.

我还尝试使用带有Center Lock库的Android Horizo​​ntalScrollView,但它不支持自动滚动.

任何人都可以建议一些示例或技巧来实现上面提到的滚动视图,中心元素值作为字段条目?

提前致谢!

android android-scrollview

7
推荐指数
1
解决办法
6079
查看次数

HttpURLConnection.getInputStream很慢

与使用相同服务器端服务的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)

android inputstream httpurlconnection androidhttpclient

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

使用 javamail API 阅读邮件时出现阿拉伯语内容问题

我正在使用 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)

java jakarta-mail

5
推荐指数
1
解决办法
3533
查看次数

在Android中处理"javax/xml/XMLConstants.class"时遇到问题

我正在创建一个在我的libs文件夹中使用3个jar文件的Application.

  • 公地编解码器1.8.jar
  • JAXP的API-1.4.2.jar
  • log4j的-1.2.14.jar

当我运行应用程序时,我收到错误"Dx trouble processing"javax/xml XMLConstants.class":"

"在不构建核心库时,不明智或错误地使用核心类(java.*或javax.*)."

"转换为Dalvik格式失败,错误1"

我尝试删除JAR文件,但它导致代码中的错误.

请建议我在这里需要做些什么来解决这个问题.

android dalvik

5
推荐指数
2
解决办法
4770
查看次数

Gradle Build因任务"processBasicDebugResources"错误而失败:com.github.javaparser.TokenMgrError

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)

android gradle android-build android-gradle-plugin

5
推荐指数
1
解决办法
329
查看次数