Android 6.0+:使用新的 MIDI API 没有声音

2023-12-10

我正在使用新的 MIDI API为了播放一些 MIDI 音符。但是,我听不到任何声音,也没有抛出任何异常。其代码如下:

//initialising the MidiReceiver
private MidiReceiver midiReceiver;
midiReceiver = new MidiReceiver() {
    @Override
    public void onSend(byte[] msg, int offset, 
        int count, long timestamp) throws IOException {

    }
};

/*Then in my loop containing note_on or note_off events*/
byte[] buffer = new byte[32];
int numBytes = 0;
int channel = 2; // MIDI channels 1-16 are encoded as 0-15.               
// NOTE_STATUS is either 0x90 or 0x80
buffer[numBytes++] = (byte)(NOTE_STATUS + (channel - 1)); 
buffer[numBytes++] = (byte)noteValue; // the required MIDI pitch
buffer[numBytes++] = (byte)127; // max velocity
int offset = 0;
midiReceiver.send(buffer, offset, numBytes);

我在这里做错了什么?我想这一定是因为onSend方法为空。如何使用它来让我的应用程序回放 Android 设备中的笔记?


我在中找不到任何指示文档新的 MIDI API 实际上可以让你合成音频,所以,看来你需要自己生成声音。

Maybe 这个图书馆可能有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 6.0+:使用新的 MIDI API 没有声音 的相关文章

  • Android ListView 子项

    我最近为 Android 应用程序创建了一个新的 ListView 对象 但遇到了一些错误 当我尝试使用简单适配器创建一个包含列表中子项目的项目时 创建的最新项目与其他项目重叠 我正在使用地图列表来创建项目 例如 如果我向地图列表中添加一个
  • 如何在 Android 应用程序中每天重复一个操作?

    我每天都想重复一个动作 即使应用程序未运行或设备已重新启动 重新启动 它也必须继续工作 在我的代码中 我尝试每 1 分钟显示一条 TOAST 消息 作为测试 它在模拟器中工作正常 但在真实设备上不起作用 我尝试对修复进行一些更改 正如我在一
  • 在Graphview android的LineGraphSeries中的两个系列之间填充颜色

    I have created a line graph using GraphView demo But I need to fill the areas only between the lines with a specific col
  • 如何使用 Java 代码在 Android 中显示图像

    我尝试使用 java 代码而不是 xml 在 android 中显示图像 我已经使用 xml 文件完成了它 但我的要求是使用 java代码以获得更多功能 预先感谢您的帮助 如果你想从drawable文件夹加载图像 你可以使用 ImageVi
  • if-else 无法与我的复选框一起正常工作

    我的应用程序中有一个网格 当我选择一个项目时 它会前瞻性地加载该项目 我只想允许仅在以下情况下选择该复选框isMayoBaseAvailable返回真 这是我使用的代码 当我使用此代码并调试它时它工作正常 但是当我运行应用程序并检查它时总是
  • 是否可以将 BitmapDescriptor 转换为 Bitmap?

    我需要将 BitmapDescriptor 转换为 Bitmap 我可以使用以下代码将位图转换为 BitmapDescriptor BitmapDescriptor bd BitmapDescriptorFactory fromBitmap
  • 相机预览越来越长

    我写了一个用于显示相机的代码 以下是我的布局文件的代码
  • Eclipse Android 不会清理,不会刷新资源

    我升级到Ubuntu 11 10 Eclipse 3 7 0 ADT 14 0 0 当我替换桌面上 res drawable nodpi 目录中的图片资源或 res raw 目录中的声音资源时 重新编译的程序和 Project Explor
  • 安装后隐藏 Android 应用程序图标

    我看到谷歌应用程序中有一些GPS应用程序 安装后 该应用程序将没有图标显示 但会在后台运行服务 我将如何实现这一目标 要从启动器中删除应用程序 请不要将这些行与主要活动放在AndroidManifest xml
  • 不要保留活动 - 这样做的目的是什么?

    标题是非常不言自明的 我明白这个开发者选项的作用 What I 不明白有以下几点 首先为什么要引入这个选项 经过这些年来该框架经历了所有的变化 它仍然有用吗 我很想知道这个选择背后的原因 我相信这是一个用于调试目的的功能 来自钛文档 htt
  • android 中的 lang.NumberFormatException

    我有以下代码 除了在后台线程中从数据库读取一些值并使用这些值之外什么也不做 我使用 jar 绘制折线图 对于我用于每个数组值的折线图 问题是第三个我传递给绘制 LineChart 的构造函数的参数是 float float viteza S
  • 将项目导入 Eclipse 后出现“必须重写超类方法”错误

    任何时候我必须将我的项目重新导入到 Eclipse 中 如果我重新安装了 Eclipse 或者更改了项目的位置 几乎全部我的重写方法的格式不正确 导致错误 该方法必须重写超类方法 值得注意的是 无论出于何种原因 Android 项目中方法参
  • 如何构建 APK 和应用程序动态加载的单独库

    简短的总结是 如何构建 APK 和单独的库 我指的是某种形式的类集 理想情况下也是资源 例如 JAR AAR 或 DEX 文件 但不将这些库包含在应用程序 相反 应用程序在运行时加载它们 Detail 所以我的主要问题是如何构建这样的应用程
  • 旋转器扩展到屏幕边界之外

    我有一个布局 其中包含一个三行的 TableLayout 每行都有一个 TextView 和一个 Spinner Spinners 的柱子设置为拉伸 我的问题是 当旋转器包含长字符串时 旋转器会超出屏幕边缘 我希望他们截断字符串 这是问题的
  • 如何在静音模式下启用媒体声音

    即使在静音模式下如何启动声音 我的音频文件位于我的原始文件夹中 我已经编写了一些代码 但是当我进入 Android 的声音设置时 铃声和闹钟是唯一更改为最大值的设置 但媒体部分没有更改 这是我的代码 public void playSoun
  • 如何防止 Xamarin Android 应用程序的设备字体大小影响?

    如果我更改设备字体 那么它也会更改我的应用程序字体 我不想根据设备字体更改我的应用程序字体 于是我就搜索了一下这个问题 结果发现方面 https developer android com guide topics resources mo
  • android Studio 日志不起作用

    我无法在手机上使用日志 我只在 Android Studio 中收到此错误 11 01 03 28 56 427 24227 24375 com example segall caveofprogcourse E GED 无法获取 GED
  • 随机关闭应用程序 - InputManagerService:收到 RemoteException 发送 setActive(false) 通知

    我有一个非常简单的Android应用程序 类似于手指画应用程序 我是 用手指在屏幕上画一些线条 我的问题是 应用程序随机关闭自己 让我回到 安卓主屏幕 我在 LogCat 上能看到的唯一日志就是这一行 Warning Tag InputMa
  • 如何将 onClick 侦听器附加到应用程序小部件上的列表视图项

    我喜欢向列表视图的每个项目添加一个 onClick 侦听器 但我尝试过的方法都不起作用 这是我的 RemoteViewsFactory public class MyRemoteViewsFactory implements RemoteV
  • 当应用程序打开时,应用程序未显示接收 FCM 的通知

    当我从 Firebase 发送推送时 如果应用程序在后台或已关闭 我会收到通知 但当应用程序打开时不会 调试我发现它在 MyMessagingService 中特别是在 onMessageReceived 处停止 所以我猜我的问题在于生成通

随机推荐