我正在尝试在Flash中创建参数均衡器.我一直在寻找一种方法来读取音频数据,并在Flash动态播放之前弄乱样本.在一个Sound对象中加载声音并使用Sound.extract()读取数据,处理它,然后播放第二个空的Sound对象并将数据写入其sampleData事件似乎是这样做的方法(请更正我如果我错了或有更好的方法).
有没有办法在Sound对象仍在加载声音文件时使用Sound.extract()?我不想在播放之前等待整个声音文件加载.不幸的是,每当我在Sound对象仍然加载时使用Sound.extract()时,它返回一个零长度的字节数组.
有没有办法在播放前等待足够的样本加载?我想,当Flash影片在声音文件仍在加载时通过所有加载的样本时,我会再次遇到同样的问题.
这是我的代码的简化版本.它到目前为止工作,但只有当我等待Sound对象触发Event.COMPLETE事件时.
var inputSound:Sound = new Sound();
inputSound.load("somefile.mp3");
inputSound.addEventListener(Event.COMPLETE, loadComplete);
var outputSound:Sound = new Sound();
outputSound.addEventListener(SampleDataEvent.SAMPLE_DATA, processSamples);
var sc:SoundChannel;
/*if I called ouputSound.play() right now, it wouldn't work.*/
function loadComplete(e:Event) : void
{
sc = outputSound.play();
}
function processSamples(e:SampleDataEvent) : void
{
var samples:ByteArray = new ByteArray();
var len:int = snd.extract(samples, 8192);
var sample:Number;
var i:int = 0;
trace(len.toString());
samples.position = 0;
//TODO: Sound Processing here
//The following code plays a sine wave over the input sound as …Run Code Online (Sandbox Code Playgroud) 我试图在我的应用程序的资源中存储一些设置,但失败了我不想使用ini文件或注册表方法我正在使用此代码
var
data :string;
procedure WriteSettings(ServerFile: string; Settings: string);
var
ResourceHandle: THandle;
pwServerFile: PWideChar;
begin
GetMem(pwServerFile, (Length(ServerFile) + 1) * 2);
try
StringToWideChar(ServerFile, pwServerFile, Length(ServerFile) * 2);
ResourceHandle := BeginUpdateResourceW(pwServerFile, False);
UpdateResourceW(ResourceHandle, MakeIntResourceW(10), 'SETTINGS', 0, @Settings[1], Length(Settings) + 1);
EndUpdateResourceW(ResourceHandle, False);
finally
FreeMem(pwServerFile);
end;
end;
function ReadSettings(ServerFile: string): string;
var
ServerModule: HMODULE;
ResourceLocation: HRSRC;
ResourceSize: dword;
ResourceHandle: THandle;
ResourcePointer: pointer;
begin
ServerModule := LoadLibrary(pchar(ServerFile));
try
ResourceLocation := FindResource(ServerModule, 'SETTINGS', RT_RCDATA);
ResourceSize := SizeofResource(ServerModule, ResourceLocation);
ResourceHandle := LoadResource(ServerModule, ResourceLocation);
ResourcePointer := …Run Code Online (Sandbox Code Playgroud) 所以这是2年前Keith Nicholas的问题的后续跟进:
我猜这可能涉及自定义类型成员布局.有没有办法在最新的Resharper版本(截至目前,它是5.1)呢?
我有一个多线程Linux C++应用程序,需要一个高性能的参考数据查找工具.我一直在考虑使用内存中的SQLite数据库,但是在我的多线程环境中看不到这种方法可以扩展.
即使所有事务都是只读的,默认线程模式(序列化)似乎也会受到单个粗粒度锁定的影响.此外,我不相信我可以使用多线程模式,因为我无法创建到单个内存数据库的多个连接(因为每次调用sqlite3_open(":memory:",&db)都会创建一个单独的内存中数据库).
所以我想知道的是:在文档中是否有我遗漏的内容,并且可以让多个线程共享来自我的C++应用程序的相同内存数据库的访问权限.
或者,我可以考虑使用SQLite的替代方案吗?
我正在努力学习LINQ的学习曲线,我真的可以使用一些帮助.我不知道我想要的是否可能,但如果我不得不下注,我敢打赌.
我目前有一个名为_tables的对象列表,其中每个对象都有一个通过属性"索引"公开的另一个对象列表.基本上,我想最终得到一个List,其中包含来自所有_tables的所有索引.
这是我到目前为止所拥有的:
var indexes = from TableInfo tab
in _tables
where tab.Indexes.Count > 0
select tab.Indexes;
Run Code Online (Sandbox Code Playgroud)
不幸的是,这似乎给了我另一个列表列表,但只有索引列表包含多个值...有没有办法让所有这些列表一起没有循环?
我正在研究如何跟踪django应用程序中的事件(事件通常是与特定唯一用户ID绑定的点击).
这些事件基本上包含一个事件类型,如"click",然后每个click事件将被分配给一个唯一的id(许多事件可以转到一个id),每个事件都有一个数据集,包括referrer等项目......
我尝试过mixpanel,但是现在他们提供的数据api似乎太有限了,因为我似乎找不到通过一个唯一的id(除了事件本身)获取所有数据的方法.
我正在研究使用django-eventracker,但对其他任何想到最佳方法的人感到好奇.Mongo或CouchDb似乎是一个很好的选择,但芹菜/ rabbitmq看起来非常吸引人的mongo.将这些事件泵入现有应用程序db似乎在这一点上受到限制.
无论如何,这只是一个线索,看看其他人的想法是什么,以及他们如何实现这样的事情......
射击
存储用于 VBO(或顶点数组)的动态数据的最佳方法是什么。我看到的唯一例子是 2D 静态数组,指向该数组的指针与下一个参数一起使用,作为步长,用于一个元素的字节等。我可以使用“动态”数组,这样我就可以在广播中指定它的大小,但只有一次。我的观点是,例如,如果您已经绘制了 1000 个点(谈论 2D,所以我认为点比顶点更好)作为线条并添加新点,这样您必须创建大小为 1001 的新数组,复制从旧字段到新字段的所有内容,添加新点并将其发送到图形的内存中。最好的方法是使用向量或双端队列作为临时存储,但随后我必须转换为数组并再次将其发送下来。
那么有没有更好的方法来做到这一点?我可以只向 VBO 添加新部件而不发送旧数据吗?或者更好的方法来存储数据/使用矢量作为数据源而不需要转换?
这次我有一个更哲学的问题.
大多数MVC教程/书籍似乎建议将一个存储库的范围限制为模型的一个方面,并设置多个存储库以涵盖所有模型类.(例如:ProjectRep,UserRep,ImageRep,最终都映射到同一个db.)
我可以看到这将如何使单元测试变得更简单但我无法想象这将如何在现实世界中起作用,在现实世界中大多数实体之间具有相互关系.最后,我总是发现自己每个数据库连接都有一个巨大的存储库类,并且用于单元测试的同样是一个笨拙的FakeRepository.
那么,你有什么看法?我应该更加努力地分离出存储库吗?是否ProductRep通过PurchaseHistory引用UserRep中的数据,反之亦然?当访问单个数据库时,不同的代表如何确保它们不会互相锁定?
谢谢,达菲
Visual Studio 2010不会将所有文件发布到文件系统.在VS 2008中,有一个选项可以在发布时包含项目中的所有文件.但是,VS 2010没有此选项.当我使用文件系统发布方法发布时,某些文件不会发布,例如.pdf文件和.flv文件.这些文件包含在项目中,因此我不确定它们为什么不发布.
我正在努力理解我在 HQL 查询中的错误:
public List<Pats> getIds(List<String> patIds) {
Session session = getSession();
String hql = "from OurPats where patId = any (:patIds)";
// String hql = "from OurPats where patId in (:patIds)";
return session.createQuery(hql).setParameterList("patIds", patIds).list();
Run Code Online (Sandbox Code Playgroud)
}
...注释掉的行工作正常,但我希望非工作 ANY 比较的功能,因为 patIds.size() 可以大于 2^15(导致 postgresql 中断)。
从http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html来看,ANY 函数应该可以工作。在其他论坛问题中,人们说不要使用上面链接中规定的元素功能(我已经尝试过元素,但出现 IDENT 错误)。上面的代码产生一个 org.hibernate.hql.ast.QuerySyntaxException:意外令牌::错误。
有任何想法吗?感谢帮助。