每N毫秒调用一个函数最准确的方法是什么?
我使用Thread.sleep 修改了这个例子,它不是很准确.
我正在开发一个音乐应用程序,它将在给定的BPM上播放声音.我知道创建一个完全准确的节拍器是不可能的,我不需要 - 只是想找到最好的方法来做到这一点.
谢谢
我看了很多答案,看起来都很复杂!最近我看到了这个答案,虽然我不想把我的按钮放在视图中.
我有6个UIButton,它们都是相同的尺寸.我想将它们均匀地水平分布在我的根视图控制器的整个宽度和底部.
| |
| |
| [b1] [b2] [b3] [b4] [b5] [b6] |
________________________________________
Run Code Online (Sandbox Code Playgroud)
以编程方式实现此目的的最简单方法是什么?
我已经构建了一个简单的音乐音序器Android应用程序,可播放多个音频文件.
最初我使用的是SoundPool播放mp3文件,它在2.3.4版本上与旧的HTC Droid Incredible完美配合.然后我在运行4.3的Galaxy Nexus上进行了测试,性能非常糟糕.整个地方的音频定时,有毛刺/点击/弹出.
因此,我花了几天时间制作一个使用AudioTrack的播放器,包括一个mp3解码器,让它在Galaxy和HTC上完美运行.现在我刚刚在Nexus 4(运行4.3)上进行了测试,性能非常糟糕 - 时机已到处.SoundPool甚至可以在此设备上提供更好的性能.
我真的很沮丧,不知道该怎么做才能完成我的应用程序,所以如果有人能帮助我,我真的很感激.我在下面放了一些我的音频播放器的代码示例.我已经尝试了我能想到的所有内容,包括更改缓冲区大小,使用AudioTrack.MODE_STATIC
等等.新的Google设备具有低延迟音频,所以我的旧机器人的一切工作方式都很奇怪!
提前致谢
/**
* Play note
*/
public void playNote(String note, float vol)
{
PlayThread oldThread = threadMap.get(note);
if(oldThread != null) {
//Cancel timer
if(oldThread.timer != null) {
oldThread.timer.cancel();
oldThread.timer.purge();
oldThread.timer = null;
}
//Stop
oldThread.requestStop();
threadMap.remove(note);
}
//Play if within Polyphony
if(threadMap.size() < POLYPHONY) {
PlayThread thread = new PlayThread(note, vol);
thread.start();
threadMap.put(note, thread);
}
}
/**
* Stop note
*/
public void stopNote(String note, int fadeDurationInMs)
{ …
Run Code Online (Sandbox Code Playgroud) 我目前正在使用 PHP 函数获取 JSON 数据并将其显示在页面上的站点上工作。但是,在加载页面时,它会冻结,直到成功获得响应,这看起来很奇怪,因为它还没有加载关闭的 html 标签。
我可以使用 Javascript 进行 ajax 调用,这会在页面加载后异步发生,但由于页面是静态的,我使用 PHP 缓存它们,这样响应就不会被缓存。
有没有办法在使用 PHP 加载页面后进行 PHP JSON 调用,或者我可以缓存 javascript JSON 响应?
是否可以录制应用程序生成的内部声音?
我的应用程序允许您创建和播放音乐序列.
soundPool.play(soundIds[i], 1f, 1f, 1, 0, Constants.TIME_RATE);
Run Code Online (Sandbox Code Playgroud)
我希望能够记录序列并导出到mp3.
我看过Audio Capture但是setAudioSource(int audio_source)似乎只接受MIC录音.
谢谢
我按照Ray Wenderlich的教程在我的应用程序中实现收据验证.代码直接从我的应用程序连接到Apple的验证服务器,而不是通过我自己的服务器.
在我将第一个二进制文件提交到AppStore之后,我测试了我的应用程序并且应用内购买无效,因为我已将其从沙箱URL切换到生产URL.
当他们的AppStore评论员测试它并因此被拒绝时,这也会失败吗?我已经阅读过这篇文章,但如果我不使用自己的服务器,我仍然很困惑这是否适用于我.
我按照本教程在我的iOS应用程序中成功实现了应用程序购买.
我现在正尝试使用以下代码实施Google Analytics跟踪购买.但在成功购买完成后,我不确定从哪里获得实际价值.
任何示例代码将不胜感激.
- (void)onPurchaseCompleted {
GAITransaction *transaction =
[GAITransaction transactionWithId:@"0_123456" // (NSString) Transaction ID, should be unique.
withAffiliation:@"In-App Store"]; // (NSString) Affiliation
transaction.taxMicros = (int64_t)(0.17 * 1000000); // (int64_t) Total tax (in micros)
transaction.shippingMicros = (int64_t)(0); // (int64_t) Total shipping (in micros)
transaction.revenueMicros = (int64_t)(2.16 * 1000000); // (int64_t) Total revenue (in micros)
[transaction addItemWithSKU:@"L_789" // (NSString) Product SKU
name:@"Level Pack: Space" // (NSString) Product name
category:@"Game expansions" // (NSString) Product category
priceMicros:(int64_t)(1.99 * 1000000) // …
Run Code Online (Sandbox Code Playgroud) google-analytics transactions objective-c in-app-purchase ios
我有一个const char和一个const wchar_t.我的下面的函数适用于char.编写一个可以轻松处理char和wchar_t的函数的最简单/最有效的方法是什么?
const char* asciiChar = "this is an ascii string";
const wchar_t* unicodeChar = L"this is a unicode string";
std::string replaceSubstring(const char* find, const char* asciiChar, const char* replace)
{
std::string const text(str);
std::regex const reg(find);
std::string const newStr = std::regex_replace(text, reg, replace);
return newStr;
}
Run Code Online (Sandbox Code Playgroud) android ×3
ios ×3
audio ×2
java ×2
objective-c ×2
soundpool ×2
audiotrack ×1
autolayout ×1
c++ ×1
char ×1
handler ×1
iphone ×1
javascript ×1
json ×1
php ×1
regex ×1
sandbox ×1
string ×1
timertask ×1
transactions ×1
uibutton ×1
validation ×1
wchar ×1