- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是 Android 开发新手。我想制作一个本质上是音乐播放器的应用程序,但手机可以随着音乐播放的节拍振动。我记得最早的 Nokia 手机有这个功能,我想重现这个来玩玩。
我的问题:这是否可能作为 Android 应用程序?如果是这样,一般方法是什么?我是否必须分析歌曲的声音模式然后改变振动强度?
谢谢!
最佳答案
我对这个问题很感兴趣,经过深入研究,我想出了如何去做。所以我们开始吧。
import android.media.MediaPlayer;
import android.os.Vibrator;
private Vibrator vibrator;
private MediaPlayer player;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
player = MediaPlayer.create(this, R.raw.music);
vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
player.start();
//HERE WE WILL START VIBRATION
Button button = (Button) findViewById(R.id.btn);
button.setOnClickListener(this);
}
public void onClick(View v){
player.stop();
vibrator.cancel();
}
这是播放音乐的一般方法,现在与 vibrate();
方法紧密配合。来自类 Vibrator 的所有构造函数我们需要这个:
public void vibrate (long milliseconds, AudioAttributes attributes);
它是在 API 21
中添加的作为第一个参数,我们可以传递歌曲的持续时间,我们可以通过这种方式获得这个持续时间(source):
String mediaPath = Uri.parse("android.resource://<your-package-name>/raw/filename").getPath();
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(mediaPath);
String duration = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
作为第二个参数,我们需要创建 AudioAttributes在AudioAttributes.Builder的帮助下:
vibrator.vibrate(duration, new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_MEDIA)
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build());
拜托,注意:我还没有尝试过。但是医生说应该没问题。让我知道这是否已完成。最好的问候。
附言不要忘记许可:
<uses-permission android:name="android.permission.VIBRATE" />
关于Android - 如何让手机随着音乐播放而振动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28981588/
在我的应用中,一些 View 对 onLongClick 使用react。在其他情况下,我想实现相同的功能,但我想知道 View 的哪一部分被长按——所以我用 onTouchEvent 模拟它。长按的
我正在尝试使用声音管理器应用程序为“铃声、通知、媒体、系统”创建不同的声音配置文件。 根据设置音量级别,我通过使用 成功了 AudioManager setStreamVolume(AudioMana
有没有办法以编程方式禁用 iPhone 的振动? 我能找到的只是如何启用振动。基本上我想通过 UISwitch 切换振动模式。 如果有办法的话,有人可以帮我吗? 最佳答案 据我所知你不能这样做。因为苹
好像无法播放提示音 AudioServicesPlayAlertSound(kSystemSoundID_Vibrate); 当 AudioQueue 用于录制音频时。那是对的吗?也许我做错了什么。除
我正在尝试振动/摇动一个 UI 元素,即一个控件,就好像它被敲击一样,并且正在共振。我可以使用核心动画将其垂直、水平或同时摇动一个像素: CABasicAnimation* rotationXAnim
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: Making the iPhone vibrate 如何以编程方式使 iPhone 振动? 任何想法或教程链接表示赞
以下代码无法运行... function onPageLoad(){ navigator.vibrate([500]);} 在移动设备上测试它,当我附加到按钮时它可以工作但不能加载??? 最佳
我正在我的应用程序中构建一个锻炼计时器。工作流程是: 用户点击“启动计时器”按钮 计时器倒计时 90 秒秒 计时器在 90 秒后结束并触发 PlayAlertSound振动 这仅在应用程序打开时有效,
您好,我已经创建了一个任务提醒应用程序。例如,您选择某个时间提醒某项任务,当该时间到来时,状态栏上会出现通知。 但是我想实现一个振动功能,可能还有一个带有通知的 LED 灯功能,但我不知道从哪里开始?
我正在开发一个应用程序,该应用程序会在计时器耗尽时发送本地通知。我已经把那部分全部设置好了。三十秒标记有通知,然后从十秒到一秒。当十比一的情况发生时,所有通知都会混在一起,变得有点困惑。现在我只剩下十
我正在使用 firebase 向我的应用程序(iOS 和 Android)发送通知。我不喜欢使用 data 字段来发送我的通知,因为对于 iOS,当用户强制退出应用程序时,不会调用 didReceiv
直到今天,我一直在模拟器中测试我的应用程序。我第一次在真实的 iPhone 上测试了一个项目。令我感到不快的是,每次我按下按钮时手机都会振动。这没什么大不了的,只是我的特定应用程序有一个内置键盘,每次
我有 slider 和一些输出框来显示这些 slider 的值。当用户移动 slider 并且值发生变化时,页面的其余部分会移动/抖动以适应新的(非常轻微的)值大小的增加。防止这种情况的最佳方法是什么
非常基本的问题,几个小时以来我一直试图自己弄清楚,但无法解决。 所以我正在为 Pebble 创建我的第一个表盘,我希望 watch 每小时发出嗡嗡声(振动)。您还记得一些数字 watch 会在点钟时间
我在收到通知时听不到声音、振动或灯光。有人可以告诉我我缺少什么吗? 还有一些问题: 1.) 我只在应用程序打开时得到指定的图标。当应用程序关闭时,我会看到 android Logo 图标(我想那是因为
我正在使用此代码购买音频线的编译错误。有谁知道为什么吗? - (void)handleTimer:(NSTimer *)timer { self.counter--; self.tim
我一直在尝试使用这段代码让 iPhone 振动: AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 但是没有用,会不会是我在调用这个的同时播放
我查看了 http://caniuse.com/但找不到任何关于振动 API 兼容性的信息。 哪些浏览器支持它? 最佳答案 更新 [2014-03-07]:Firefox、Chrome 和 Opera
iPhone如何设置振动一次? 例如,当玩家失去生命或游戏结束时,iPhone 应该振动。 最佳答案 来自“iPhone Tutorial: Better way to check capabilit
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 这行代码在 iPad 上似乎不起作用 - iPad 是否具有振动所需的硬件? 最佳答案 它没
我是一名优秀的程序员,十分优秀!