所以,我一直在为声音文件制作一个小型可视化工具,只是为了好玩.我基本上想模仿Windows Media Player中的"Scope"和"Ocean Mist"可视化器.范围很简单,但我遇到了Ocean Mist的问题.我很确定它是某种频谱,但是当我对波形数据进行FFT时,我得不到与Ocean Mist显示的数据相对应的数据.频谱实际上看起来是正确的,所以我知道FFT没有任何问题.我假设可视化器通过某种过滤器运行光谱,但我不知道它可能是什么.有任何想法吗?
EDIT2:我在这里发布了我的代码的编辑版本.通过编辑,我的意思是我删除了所有实验性评论,只留下了活动代码.我还添加了一些描述性的评论.可视化器现在看起来像这样.
编辑:这是图像.第一个是我的可视化器,第二个是Ocean Mist.
我的可视化工具http://i43.tinypic.com/5xuyqa.jpg 海洋雾http://i41.tinypic.com/f1bb04.jpg
我写了一个小图形可视化类:
public void simpleGraph(SparseMultigraph<Vertex,SEdge> graph, String name) {
Layout<Vertex, SEdge> layout = new ISOMLayout(graph);
layout.setSize(new Dimension(800,800));
BasicVisualizationServer<Vertex, SEdge> vv = new BasicVisualizationServer<Vertex, SEdge>(layout);
vv.setPreferredSize(new Dimension(850,850)); //Sets the viewing area size
JFrame frame = new JFrame(name);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(vv);
frame.pack();
frame.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)
如何为顶点和边添加标签?值存储在我的自定义顶点类中.我可以迭代布局或BasicVisualizationServer中的所有顶点并添加标签吗?
谢谢你的帮助!
我3天前开始为Android编程,今天我想用android Api的一些类做一些更难的事情.我找到了Visualizer课程,并且首先尝试我遇到了问题.我在不同的论坛上阅读了许多有相同问题的人:无法初始化可视化引擎.
我将requierd uses-permission添加到Manifest.xml中
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.program.fourier"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".mainFFT"
android:label="@string/title_activity_main_fft" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
接下来我试图解决这个问题,但我不能.这是我的完整代码:
package org.program.fourier;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
import android.media.audiofx.Visualizer;
import android.media.audiofx.Visualizer.OnDataCaptureListener;
import android.media.MediaPlayer;
import android.media.AudioManager;
public class mainFFT extends Activity {
MediaPlayer mPlayer;
Visualizer vis;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_fft); …Run Code Online (Sandbox Code Playgroud) Visual Studio中的WPF Mole可视化工具是调试WPF应用程序的绝佳工具.我想知道的是,是否有一个可视化工具,具有类似于一般.Net调试的Mole功能.我发现内置的手表功能有点狡猾.
谢谢
如何在JUNG图形可视化中使用自定义顶点标签?
我遵循Jung 2.0 Tutorial,我发现setVertexLabelTransformer()可以用来标记顶点,但据我所知,这些标签无法自定义.
例如,下面的代码生成三个顶点,顶点标签1,2,4:
import edu.uci.ics.jung.algorithms.layout.CircleLayout;
import edu.uci.ics.jung.algorithms.layout.Layout;
import edu.uci.ics.jung.graph.Graph;
import edu.uci.ics.jung.graph.SparseMultigraph;
import edu.uci.ics.jung.visualization.BasicVisualizationServer;
import java.awt.Dimension;
import javax.swing.JFrame;
public class SimpleGraphView {
Graph<Integer, String> g;
public SimpleGraphView() {
g = new SparseMultigraph<Integer, String>();
g.addVertex((Integer)1);
g.addVertex((Integer)2);
g.addVertex((Integer)4);
}
public static void main(String[] args) {
SimpleGraphView sgv = new SimpleGraphView();
Layout<Integer, String> layout = new CircleLayout(sgv.g);
layout.setSize(new Dimension(800,800));
BasicVisualizationServer<Integer,String> vv =
new BasicVisualizationServer<Integer,String>(layout);
vv.setPreferredSize(new Dimension(850,850));
JFrame frame = new JFrame("Simple Graph View");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(vv);
frame.pack(); …Run Code Online (Sandbox Code Playgroud) 我一直在阅读另一篇关于从媒体播放器实时计算振幅的文章,但我不清楚如何获得对我有用的值。我需要的是在 0-100 之间标准化的线性幅度值,但正如我在另一篇文章中看到的那样,他们正在执行没有多大意义的 db 计算,因为它们没有标准化为最大 0dB 值(来自如何计算实时音频幅度(android)):
double amplitude = 0;
for (int i = 0; i < audioData.length/2; i++) {
double y = (audioData[i*2] | audioData[i*2+1] << 8) / 32768.0
// depending on your endianness:
// double y = (audioData[i*2]<<8 | audioData[i*2+1]) / 32768.0
amplitude += Math.abs(y);
}
amplitude = amplitude / audioData.length / 2;
Run Code Online (Sandbox Code Playgroud)
我已经看到,为了计算 de dB,我应该执行以下操作(来自如何从媒体播放器计算幅度的分贝 (dB)? )
double sum=0;
for (int i = 0; i < audioData.length/2; i++) {
double y = (audioData[i*2] …Run Code Online (Sandbox Code Playgroud) 不久之前,我注意到我的数据表旁边没有放大镜.我曾经拥有它,不知何故,有时,它消失了......
有没有人看到过这种情况?你知道如何帮助我再次查看我的数据表吗?
更新:我仍然对此毫无头绪.任何人都可以指出我的方向,我应该在哪里开始寻找答案?非常感谢.
更新:我改为新计算机,仍然是同样的问题.但我确定它只在Visual Studio 2005中.在Visual Studio 2008上,我有完全正常的DataSet和Datatable可视化工具.所以我尝试重新安装VS2005,以确保所有组件都已安装,没有任何遗漏 - 但Nada.仍然没有可视化器.
更新:找到我的问题的解决方案:我的答案
我刚刚在Windows 7 64位计算机上安装了visual studio 2005 service pack 1.一切似乎工作正常,我能够毫无错误地运行我的项目.但是,当我处于调试模式时,我注意到DataTables和DataSet的"Watch"窗口出现问题.
我有一个名为dt的DataTable,我在观察窗口中输入它.没有放大镜似乎打开可视化工具,我在值列中收到以下错误:
0x000000001d438c90 { KEY_XMLSCHEMA="XmlSchema" KEY_XMLDIFFGRAM="XmlDiffGram" KEY_NAME="TableName" ...}
Run Code Online (Sandbox Code Playgroud)
有没有其他人有这个问题?我已经尝试了这篇文章中的所有内容并搜索了谷歌周围但没有任何效果.
我正在尝试实现Android Visualizer类.我已查找其他麻烦线程,但我仍然遇到致命错误.这一切在我看来它应该正常工作,无论出于何种原因AVD继续崩溃.
首先,我正在使用权限:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
Run Code Online (Sandbox Code Playgroud)
这是我的logcat:
12-21 15:10:46.983: D/dalvikvm(642): Not late-enabling CheckJNI (already on)
12-21 15:10:48.823: D/MediaPlayer(642): Couldn't open file on client side, trying server side
12-21 15:10:53.603: E/AudioEffect(642): set(): AudioFlinger could not create effect, status: -22
12-21 15:10:53.603: E/visualizers-JNI(642): Visualizer initCheck failed -4
12-21 15:10:53.613: E/Visualizer-JAVA(642): Error code -4 when initializing Visualizer.
12-21 15:10:53.613: E/Visual Ex(642): Cannot initialize Visualizer engine, error: -4
12-21 15:10:53.964: D/gralloc_goldfish(642): Emulator without GPU emulation detected.
Run Code Online (Sandbox Code Playgroud)
我的代码:
package MediaPlayer.namespace;
import java.io.IOException;
import …Run Code Online (Sandbox Code Playgroud) 初始化时出现此错误 Visualizer
visualizer = new Visualizer(mediaPlayer.getAudioSessionId()); <----
Run Code Online (Sandbox Code Playgroud)
错误:无法初始化Visualizer引擎,错误:-3 java.lang.RuntimeException:无法初始化Visualizer引擎,错误:-3
注意:这只发生在棉花糖