`
kerlubasola
  • 浏览: 680105 次
文章分类
社区版块
存档分类
最新评论

Android Audio代码分析24 - AudioEffect::setEnabled函数

 
阅读更多
之前已经看过,通过接口getEnabled可以取得effect的enable状态。
今天来看看如何来改变enable状态。


*****************************************源码*************************************************

**********************************************************************************************
源码路径:
frameworks\base\media\tests\mediaframeworktest\src\com\android\mediaframeworktest\functional\MediaAudioEffectTest.java


#######################说明################################

###########################################################


&&&&&&&&&&&&&&&&&&&&&&&总结&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
setEnabled 最终会调用到 EffectModule 中的 setEnabled 函数。
函数 EffectModule::setEnabled 会修改当前状态,并调用函数 EffectHandle::setEnabled 。
函数 EffectHandle::setEnabled 会回调到 java 侧的函数 postEventFromNative ,将状态改变告诉给 java 侧。
函数 postEventFromNative 会调用 NativeEventHandler::handleMessage 函数来处理 native 侧过来的 event 。
handleMessage 函数中调用 Listener 的 onEnableStatusChange 函数,将改变告诉给应用成员。
应用程序在初始化阶段会创建一个自己的 Listener ,并将它注册到 AudioEffect 对象。


至于 native 侧如何回调 java 侧的函数, 在后面的文章中再详细介绍。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
分享到:
评论

相关推荐

    java8stream源码-assignments-y4-jdbcViewer:带有MySQL连接的简单UI

    表达式,迭代所有组件并在一行中禁用/启用它们Arrays.asList(prevnext.getComponents()).stream().forEach((item)->item.setEnabled(areEnabled)); 方法引用和可运行对象。 为了以不同的方式处理每个鼠标事件操作,...

    Qt笔记本源码

    connect(textEdit, SIGNAL(copyAvailable(bool)), actionCopy, SLOT(setEnabled(bool))); #ifndef QT_NO_CLIPBOARD connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(clipboardDataChanged...

    qt串口通信

    部分代码如下: myCom = new Win_QextSerialPort(QString("COM3"),QextSerialBase::EventDriven); if(!myCom ->open(QIODevice::ReadWrite)) return; ui->pushButton->setEnabled(false); myCom->setBaudRate...

    蓝牙自动开启

    加入以下代码,实现自动开启,测试通过 -(void)startBluetooth{ #if TARGET_IPHONE_SIMULATOR exit( EXIT_SUCCESS ) ; #else Class BluetoothManager = objc_getClass( "BluetoothManager" ) ; id btCont = ...

    中国象棋C++代码

    中国象棋的C++代码 #include "chess_zn.h" QTcpSocket * Chess_ZN::client = new QTcpSocket; QUndoStack * Chess_ZN::undoStack = new QUndoStack(); int Chess_ZN::second = 120; bool Chess_ZN::isTurn = false; ...

    Qt5开发及实例-CH1205.rar,Qt5实现客户端编程的代码

    Qt5开发及实例,实例CH1205,客户端编程。界面效果如图12.7所示。 操作步骤如下。 (1)建立客户端工程“TimeClient.pro”。在头文件“timeclient.h”中,定义...在源文件“timeclient.cpp”中,getTime()函数的具体代码

    QT串口通讯并进行数据库操作

    void Widget::Select() //查询 { QString name = ui->lineEdit->text(); model->setFilter(QObject::tr("id = '%1'").arg... ui->baudRateComboBox->setEnabled(false); ui->portNameComboBox->setEnabled(false); }

    Android开发笔记之:如何屏蔽Button setClickable与setEnabled

    本篇文章是对在Android中,如何屏蔽Button setClickable与setEnabled的方法进行了详细的分析介绍,需要的朋友参考下

    自己开发的Android 直接发送短信方法附上代码.rar

    这是一个自己开发的Android 直接发送短信方法附上代码,Android 发短信功能,包括了对内容合法性的验证,发送完成弹出提示。自己开发的直接发送短信的方法:  private void sendSMS(String telNo,String smsStr,...

    android 百度地图 定位示例

    btn_location.setEnabled(false); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. ...

    Qt扫雷代码

    startAction->setEnabled(false); pauseAction=new QAction(tr("暂停"),this); pauseAction->setShortcut(tr("P")); gameMenu->addAction(pauseAction); connect(pauseAction,SIGNAL(triggered()),this,SLOT...

    Backup:在Laravel中备份和还原数据库的简便方法

    这些包括: Backup::export Backup::restore Backup::setBackupEngineInstance Backup::getBackupEngineInstance Backup::setBackupFilesystemInstance Backup::getBackupFilesystemInstance Backup::setEnabled ...

    qt播放器qt mediaplayer

    "Audio files (*.mp3 *.wav)"); updateTimer = 0; setMouseTracking(true); this->wmp = new QAxWidget(this); wmp->setControl("{22D6F312-B0F6-11D0-94AB-0080C74C7E95}"); // wmp->setProperty("ShowControls",...

    自写的Android直接发送短信的方法.rar

    自写的Android直接发送短信的方法,这个不是聊天程序,是手机发短信程序,自己写的,没有使用Android中的固定模块,下面是自写的发短信代码片段,供参考:  重写的按钮监听方法  if(v == select){//按下了选择联系...

    图书馆图书管理系统 oracle数据库

    //titleLabel.setFont(new Font("TimesRoman",Font.BOLD,24)); //AuthorLabel=new JLabel("作者:麦密辉",JLabel.RIGHT); //DateLabel=new JLabel("完成时间:04-11-04",JLabel.RIGHT); titleLabel=new ...

    Android输入手机号发送短信示例.rar

    Android输入手机号发送短信示例,EditText number框中的是电话号码,EditText body框中的是短信内容:  public void onCreate(Bundle savedInstanceState) {//重写的onCreate方法  super.onCreate...

    Android实现倒计时的按钮的示例代码

    最近有人问我如何实现倒计时的按钮功能,例如发送验证码,我记得有个CountDownTimer,因为好久没用过了,自己就写了一个,代码如下 new CountDownTimer(10000, 1000) { @Override public void onTick(long ...

    摇号机代码

    关于摇号机的JAVA代码import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Luck extends JFrame implements ActionListener{ JTextField tf = new JTextField(); JButton b1 = new ...

    Java网络五子棋chessClient.java:客户端主程序。chessInterface.java:客户端的界面。

    下面的源代码分为4个文件; chessClient.java:客户端主程序。 chessInterface.java:客户端的界面。 chessPad.java:棋盘的绘制。 chessServer.java:服务器端。 可同时容纳50个人同时在线下棋,聊天。 没有加上...

Global site tag (gtag.js) - Google Analytics