Most visited

Recently visited

Added in API level 23

MidiReceiver

public abstract class MidiReceiver
extends Object

java.lang.Object
   ↳ android.media.midi.MidiReceiver
Known Direct Subclasses


用于向MIDI设备发送数据和从MIDI设备接收数据的接口。

Summary

Public constructors

MidiReceiver()

默认的MidiReceiver构造函数。

MidiReceiver(int maxMessageSize)

MidiReceiver构造函数。

Public methods

void flush()

指示接收器放弃所有待处理的MIDI数据。

final int getMaxMessageSize()

返回此接收器可以接收的最大消息大小。

void onFlush()

当接收器被指示放弃所有待处理的MIDI数据时调用。

abstract void onSend(byte[] msg, int offset, int count, long timestamp)

每当接收机通过新的MIDI数据时调用。

void send(byte[] msg, int offset, int count)

被称为发送MIDI数据到接收器没有时间戳。

void send(byte[] msg, int offset, int count, long timestamp)

被叫用指定的时间戳发送MIDI数据给接收器。

Inherited methods

From class java.lang.Object

Public constructors

MidiReceiver

Added in API level 23
MidiReceiver ()

默认的MidiReceiver构造函数。 最大邮件大小设置为MAX_VALUE

MidiReceiver

Added in API level 23
MidiReceiver (int maxMessageSize)

MidiReceiver构造函数。

Parameters
maxMessageSize int: the maximum size of a message this receiver can receive

Public methods

flush

Added in API level 23
void flush ()

指示接收器放弃所有待处理的MIDI数据。

Throws
IOException

getMaxMessageSize

Added in API level 23
int getMaxMessageSize ()

返回此接收器可以接收的最大消息大小。

Returns
int maximum message size

onFlush

Added in API level 23
void onFlush ()

当接收器被指示放弃所有待处理的MIDI数据时调用。 如果子类维护将来要处理的MIDI数据的列表或队列,则子类应该重写此方法。

Throws
IOException

onSend

Added in API level 23
void onSend (byte[] msg, 
                int offset, 
                int count, 
                long timestamp)

每当接收机通过新的MIDI数据时调用。 子类覆盖此方法来接收MIDI数据。 如果计数超过getMaxMessageSize()可能会失败。 注:msg数组参数仅在此调用的上下文中有效。 msg字节应由接收方复制,而不是保留对该参数的引用。 另外,修改msg数组参数的内容可能会导致同一应用程序中的其他接收者在其{link #onSend}方法中接收不正确的值。

Parameters
msg byte: a byte array containing the MIDI data
offset int: the offset of the first byte of the data in the array to be processed
count int: the number of bytes of MIDI data in the array to be processed
timestamp long: the timestamp of the message (based on nanoTime()
Throws
IOException

send

Added in API level 23
void send (byte[] msg, 
                int offset, 
                int count)

被称为发送MIDI数据到接收器没有时间戳。 数据将按发送顺序由接收方处理。 如果计数超过getMaxMessageSize()则数据将被拆分为onSend(byte[], int, int, long)多个呼叫。 阻塞,直到发送所有数据或发生异常。 在后一种情况下,异常之前发送的数据量不会提供给调用者。 沟通应被视为腐败。 发件人应重新建立通信,重置所有控制器并关闭所有笔记。

Parameters
msg byte: a byte array containing the MIDI data
offset int: the offset of the first byte of the data in the array to be sent
count int: the number of bytes of MIDI data in the array to be sent
Throws
IOException if the data could not be sent in entirety

send

Added in API level 23
void send (byte[] msg, 
                int offset, 
                int count, 
                long timestamp)

被叫用指定的时间戳发送MIDI数据给接收器。 数据将由接收者先按时间戳顺序处理,然后按发送顺序处理。 数据将获得分成多次调用onSend(byte[], int, int, long)如果计数超过getMaxMessageSize() 阻塞,直到发送所有数据或发生异常。 在后一种情况下,异常之前发送的数据量不会提供给调用者。 沟通应被视为腐败。 发件人应重新建立通信,重置所有控制器并关闭所有笔记。

Parameters
msg byte: a byte array containing the MIDI data
offset int: the offset of the first byte of the data in the array to be sent
count int: the number of bytes of MIDI data in the array to be sent
timestamp long: the timestamp of the message, based on nanoTime()
Throws
IOException if the data could not be sent in entirety

Hooray!