我正在尝试使用AudioRecord类来记录WAV文件.问题是它只提供原始PCM数据,如果我将其写入文件,则没有标题信息,因此它不会在任何媒体播放器中播放.如何从这些原始数据创建WAV文件?
或者,有没有其他方法将Android中的声音录制到WAV文件(或者MP3)?
哦,我知道MediaRecorder无法使用,因为它不支持WAV或MP3格式.
我觉得这是一个非常愚蠢的问题,但我似乎无法在任何地方找到答案!
是否可以从char数组中获取一组字符?抛弃一些伪代码:
char arry[20] = "hello world!";
char part[10] = arry[0-4];
printf(part);
Run Code Online (Sandbox Code Playgroud)
输出:
hello
Run Code Online (Sandbox Code Playgroud)
那么,我可以从这样的数组中获取一段字符而不循环并获取char-by-char或转换为字符串以便我可以使用substr()吗?
我正在将Facebook整合到我的iPhone应用程序中,并且我有代码在登录后将帖子发布到用户的墙上,但我注意到帖子没有显示在用户的新闻提要中.朋友.相反,它只显示在用户的墙上.这是我的代码......
- (void)publishStream
{
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"Post a message on your wall", @"user_message_prompt",
@"Hello, World!", @"message",
nil];
[facebook dialog:@"feed"
andParams:params
andDelegate:self];
}
Run Code Online (Sandbox Code Playgroud)
如何才能将它显示在新闻Feed中?我应该提一下,我设置的唯一权限是'publish_stream',据我所知,这是我需要的唯一权限.
非常感谢你的智慧!
我无法理解Vista和/或Windows 7中注册表操作的VirtualStore虚拟化.我认为在以标准用户身份运行时尝试将某些内容写入HKEY_LOCAL_MACHINE根目录会提示Windows虚拟化操作并写入HKEY_CURRENT_USER/Classes/VirtualStore /而是机器.我已经看到几个较旧的应用程序的行为完全相同.
但是,当尝试在C#和.Net4中复制该行为时,对HKLM的写入操作失败,而是使用UnauthorizedAccessException.有没有办法强制虚拟化?
为这个问题提供一些上下文:我正在尝试阅读和操作最初由另一个遗留应用程序创建的注册表项.在Vista或Windows 7中,这些将位于VirtualStore中.我想为WinXP及以上版本使用相同的注册表访问逻辑,并认为我的注册表操作将与旧版应用程序中的操作一样虚拟化(并且会因为相同的键而操作).这不能按预期工作,我知道的唯一解决方法是专门访问VirtualStore路径,如果用户运行Vista或7并启用了UAC ......但是,看起来很难看,特别是如果微软决定更改虚拟化行为未来的Windows版本.
我有一个注册表,我想使用密码字段.问题是,我希望它在开头有一个占位符说"密码",所以我使用的是文本字段.当用户开始输入时,我需要将字符转换为星号或黑色圆圈,如密码字段.
我已经尝试通过javascript将"type"属性更改为"password",所以我被卡住了.
有没有一种简单的方法来解决这个问题?或者有人知道一个好的javascript(最好是jquery)来破解这个吗?
谢谢
我正按顺序获得一些资源.哪个版本更好?有人告诉我,#2导致需要更高编号资源的线程饥饿.这是真的?如果是这样,怎么样和为什么?
a[] sorted array
Run Code Online (Sandbox Code Playgroud)
1.
for(int i = 1; i < N; ++i) {
lock(mutex)
while(!resource_available[a[i]]) {
pthread_cond_wait(&cond_w[a[i]], &mutex);
}
resource_available[a[i]] = 0;
unlock(mutex)
}
Run Code Online (Sandbox Code Playgroud)
2.
lock(mutex)
for(int i = 1; i < N; ++i) {
while(!resource_available[a[i]]) {
pthread_cond_wait(&cond_w[a[i]], &mutex);
}
resource_available[a[i]] = 0;
}
unlock(mutex)
Run Code Online (Sandbox Code Playgroud)
编辑:事实证明,释放资源的顺序是有区别的,而不是上面的结构.如果你按顺序释放它们就会发生饥饿,如果相反则可能没有.
你会怎么做?
我有一个带有UITextField的表单.当我点击它时,我想显示一个UIDatePicker,而不是默认弹出的默认键盘?请注意,我的表单上还有其他元素.
有人可以指出我的for循环有什么问题吗?我试图通过UIImageViews循环使所有隐藏.所有子视图都是UIImageViews.提前致谢.
int i;
int num = [[self myView]subviews];
for (i=0; i<num; i++)
{
UIImageView *currentView = [self.tabber.subviews objectAtIndex:i];
currentView.hidden = YES;
}
Run Code Online (Sandbox Code Playgroud) 考虑一下这段代码(VS2008):
void WordManager::formatWords(std::string const& document)
{
document_ = document;
unsigned int currentLineNo = 1;
size_t oldEndOfLine = 0;
size_t endOfLine = document_.find('\n');
while(endOfLine != std::string::npos)
{
std::string line = document_.substr(oldEndOfLine, (endOfLine - oldEndOfLine));
if(line.size() < 2)
{
oldEndOfLine = endOfLine + 1;
endOfLine = document_.find('\n', oldEndOfLine);
continue;
}
std::vector<std::string> words = Utility::split(line);
for(unsigned int i(0); i < words.size(); ++i)
{
if(words[i].size() < 2)
continue;
Utility::trim(words[i], WordManager::delims);
Utility::normalize(words[i], WordManager::replace, WordManager::replaceWith);
if(ruleOne(words[i]) && ruleTwo(words[i]))
{
std::set<Word>::iterator sWIter(words_.find(Word(words[i])));
if(sWIter == words_.end())
words_.insert(Word(words[i])).first->addLineNo(currentLineNo);
else …Run Code Online (Sandbox Code Playgroud) 我试图确定一个包含每行不同布局的单个ListView的最佳方法.我知道如何创建自定义行+自定义数组适配器以支持整个列表视图的自定义行,但是如何在ListView中实现许多不同的行样式?
android ×2
c++ ×2
ios ×2
iphone ×2
arrays ×1
audio ×1
audiorecord ×1
c ×1
c# ×1
char ×1
cocoa-touch ×1
css ×1
facebook ×1
forms ×1
goto ×1
html ×1
ipad ×1
javascript ×1
jquery ×1
keyboard ×1
listview ×1
listviewitem ×1
objective-c ×1
pcm ×1
pthreads ×1
registry ×1
resources ×1
uidatepicker ×1
uitextfield ×1
virtualstore ×1
wav ×1