问题列表 - 第41850页

帮助使用 FFT 来确定音频样本的频率

我目前正在开发打击乐教程程序。该程序要求我可以确定正在播放什么鼓,为此我将分析鼓录音的频率并查看频率是否在给定范围内。

到目前为止,我一直在为 FFT 使用 Apache math commons 实现(http://commons.apache.org/math/),但我的问题是,一旦我执行了 FFT,我如何使用结果数组来计算频率包含在信号中?

注意:我也尝试过使用自相关进行试验,但它似乎不适用于来自架子鼓的样本

任何有关如何确定正在击中的鼓的帮助或替代建议将不胜感激

编辑:自从写这篇文章以来,我发现了一个很棒的在线课程,关于在 Java 中实现 FFT 以进行时间/频率变换在 Java 中的频谱分析

java signal-processing fft apache-commons frequency-analysis

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

递归删除

我有这个代码来递归删除文件和目录.它工作正常,但有一点问题.如果$ path =/var/www/foo /它会删除foo中的所有内容,但不会删除foo.我也想删除foo目录.任何的想法?

public function delete($path) {
    if(!file_exists($path)) {
        throw new RecursiveDirectoryException('Directory doesn\'t exist.');
    }

    $directoryIterator = new DirectoryIterator($path);

    foreach($directoryIterator as $fileInfo) {
        $filePath = $fileInfo->getPathname();

        if(!$fileInfo->isDot()) {
            if($fileInfo->isFile()) {
                unlink($filePath);
            }
            else if($fileInfo->isDir()) {
                if($this->emptyDirectory($filePath)) {
                    rmdir($filePath);
                }
                else {
                    $this->delete($filePath);
                    rmdir($filePath);
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

php recursion unlink delete-file rmdir

4
推荐指数
1
解决办法
6539
查看次数

使用servlet 3.0添加动态servlet会引发异常

我需要在运行时创建添加servlet.当我运行以下代码时.

protected void processRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException 
    {

        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {

            out.println("<html>");
            out.println("<head>");
            out.println("<title> URI out</title>");
            out.println("</head>");
            out.println("<body>");
            Integer generatedKey = Math.abs(randomiser.nextInt());
            out.print(generatedKey);

            createServlet(Integer.toString(generatedKey),request.getServletContext());

        } finally {
            out.println("</body>");
            out.println("</html>");
            out.close();
        }
    }


    private void createServlet(String generatedKey, ServletContext servletContext) {
        String servletMapping = "/"+generatedKey;

 ServletRegistration sr = servletContext.addServlet(generatedKey, "com.path.lbs.servlets.testDynamic");

        sr.setInitParameter("keyname", generatedKey);
        sr.addMapping(servletMapping);

    }
Run Code Online (Sandbox Code Playgroud)

我收到以下错误.

java.lang.IllegalStateException:PWC1422:无法为servlet上下文/ 123-LBS的servlet 1114600676配置映射,因为此servlet上下文已经初始化

是否无法在运行时添加新的servlet,即在Servlet Context初始化之后或者我做错了什么?

java servlets glassfish

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

为什么在编辑JTable单元格时按下escape时未调用cancelCellEditing()?

我有一个可编辑的JTable,并设置了一个DefaultCellEditor,如下所示:

    colModel.getColumn( 1 ).setCellEditor( new DefaultCellEditor( txtEditBox ) {
        // ...
        @Override
        public void cancelCellEditing() {
            super.cancelCellEditing();
            // handling the event
        }
        // ...
    }
Run Code Online (Sandbox Code Playgroud)

但是,在编辑此列中的单元格时按下escape时,虽然编辑模式已完成,但不会调用此方法.有什么想法吗?难道我做错了什么?有没有办法处理这个(除了手动添加KeyListener)?

java jtable tablecelleditor

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

Java EE和Spring框架之间的区别

我正在努力了解Java EE和Spring Framework之间的区别.有谁可以帮我这个.

spring spring-mvc java-ee

17
推荐指数
3
解决办法
2万
查看次数

4
推荐指数
1
解决办法
2166
查看次数

无限循环和早期返回声明

我有一个简单的控制台应用程序,它输出一个菜单并等待用户输入.执行适当的操作后,整个过程重复进行.输入特定字符串时,程序退出.这是通过无限循环和早期返回语句实现的:

int main()
{
    while (true)
    {
        OutputMenu();

        string UserChoice;
        cin >> UserChoice;

        // ...

        if (UserChoice == "exit") return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

根据我的老师的说法,使用无限循环并使用return语句破解我的方法是不好的做法.他建议如下:

int main()
{
    bool ShouldExit = false;
    while (!ShouldExit)
    {
        OutputMenu();

        string UserChoice;
        cin >> UserChoice;

        // ...

        if (UserChoice == "exit") ShouldExit = true;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)
  • 使用无限循环和早期返回语句真的是一个坏主意吗?
  • 如果是这样,是技术原因还是仅仅是不好的做法?

c++ infinite-loop

4
推荐指数
4
解决办法
4302
查看次数

在Android上获取IP Cam视频流(MJEPG)

我目前正在以3人为一组进行AndAR项目.我是负责Android手机视频流的人.我得到了一台D-Link DCS-920 IP摄像机,我发现它使用MJPEG编解码器作为直播视频流,网络服务器使用Jview来观看直播.据我所知,MJPG不是Android操作系统支持的文件类型所以我想出了一个想法,而不是使用ImageView,我使用WebView来传输视频.我实现了一个非常简单的概念,它的工作原理!但问题是,刷新率很糟糕.我得到视频图像(例如http://192.168.1.10/image.jpg:)在WebView上查看并实现一个Timer来控制刷新率(假设它设置为30fps,每33ms刷新一次)但是它只能达到500ms间隔,任何更低的间隔我注意到它不会更平滑,有时图像不会加载,连接不稳定(例如:掉线).这可能是我的速度比它能以更快的速度刷新吗?但是在网络服务器Jview上它没有问题!我试图找到jview的源代码,但我没有希望.无论如何这里是我写的代码

package org.example.test;

import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.EditText;

public class Webview extends Activity {

public WebView webView;
public Timer autoUpdate;
public String url;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);    

        webView = (WebView) findViewById(R.id.webview);
        webView.getSettings();
        final EditText urlText = (EditText) findViewById(R.id.urlText);

        //Buttons//////////////////------------
        final Button connectB = (Button)findViewById(R.id.connectButton);
        connectB.setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) { …
Run Code Online (Sandbox Code Playgroud)

ip video camera android stream

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

在更新之前,我可以像在Eclipse中一样查看TortoiseSVN中的传入更改吗?

在更新我的代码库之前,Eclipse的同步视图非常适合查看来自每个人的传入更改.

TortoiseSVN中是否有类似的功能?我只能比较那里的2个版本,我没有找到任何功能来比较我的工作副本(这是修改过的文件和各种版本的文件的混合)与HEAD修订版很容易!

svn tortoisesvn review

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

Java枚举的性能

我正在考虑使用enum类型来管理我正在开发的Java游戏中的i18n,但我对使用具有大量元素的枚举(我认为数千个)时可能出现的性能问题感到好奇.

其实我正在尝试这样的事情:

public enum Text {
  STRING1,
  STRING2,
  STRING3;

  public String text() {
    return text;
  }

  public String setText() {
    this.text = text;
  }
}
Run Code Online (Sandbox Code Playgroud)

然后加载它们我可以填写字段:

static
{
  Text.STRING1.setText("My localized string1"); 
  Text.STRING2.setText("My localized string2"); 
  Text.STRING3.setText("My localized string3"); 
}
Run Code Online (Sandbox Code Playgroud)

当然,当我必须管理多种语言时,我会从文件中加载它们.

我问的是

  • 是一个为每个元素分配的(除字符串之外的)obect?(我想是的,因为枚举是用对象实现的)
  • 如何从枚举中检索出正确的元素?它在编译时是静态的吗?(我的意思是在我使用的某个地方Text.STRING1.text()).所以它应该是恒定的复杂性,或者它们可能只是在编译阶段被替换.
  • 一般来说,这是一个好方法还是我应该期待别的什么?

谢谢

java enums internationalization

5
推荐指数
3
解决办法
6952
查看次数