这OpenSl EsAPI接受使用C编程语言的面向对象的方法。这个API包括两部分基本内容,一个对象和一个接口。
一个对象是一些资源的抽象或配任务的的抽象。和C++的类相识;
一个接口是一个对象能够提供的相关特性的抽象。一个接口包含了一套方法,,那是接口的函数。一个接口有一个类型正确的指定了一套接口的函数。我们能够定义接口本身作为它的类型和对象的结合。
一个接口Id,定义了一个接口的类型。这个定义被用来在源代码中来参照接口的类型。
一个对象的维护一个状态机带有如下的状态:
初始化的状态:这个对象是活着的,但是没有分配资源。它不是稳定的;它的接口的方法没有被调用。
实现状态:对象的资源被分配和对象是可以使用的。
延迟的状态:这个对象有较少的资源比着它需要的,为了能够被使用。
Getter和Setter
一个应用程序使用一个setter方法来改变一个对象的值和一个getter来获得一个对象的值。
使用代码陈述
OpenSL Es通过它的SLObjectItf接口来引用一个对像。
这个API使用C的结构,所有的域都是方法的函数指针,代表的方法。这些接口的结构体被存储和传递作为pointer-to-pointer-to-struct和从不通过值。
每个接口函数都有一个参数叫做self,它的类型是接口类型。因此,当调用一个接口函数,这个调用必须传递接口指针在这个参数。每个回调类型都有一个产生叫做caller,是一个接口类型。