import {ObjectBase} from '../../common/lang/ObjectBase';
//==========================================================
// 音频缓冲。
//
// @author sunpeng
// @history 150717
//==========================================================
export class AudioBuffer extends ObjectBase {
//o = MO.Class.inherits(this, o, MO.FObject, MO.MAudio);
//..........................................................
// @attribute
//_context = MO.Class.register(o, new MO.AGetSet('_context'));
//_url = MO.Class.register(o, new MO.AGetSet('_url'));
// @attribute
//_handle = MO.Class.register(o, new MO.AGetter('_handle'));
//_buffer = MO.Class.register(o, new MO.AGetter('_buffer'));
//==========================================================
// 构造处理。
//
// @method
//==========================================================
public constructor() {
super();
//o.__base.FObject.construct.call(o);
//o.__base.MAudio.construct.call(o);
}
//==========================================================
// 数据解码成功。
//
// @method
// @param uri:String 网络地址
// @return bool 是否已加载
//==========================================================
public onDecodeSuccess(buffer) {
var o = this;
// 创建缓冲
//var contextHandle = o._context.handle();
//var bufferSource = o._buffer = contextHandle.createBufferSource();
//bufferSource.buffer = buffer;
//bufferSource.connect(contextHandle.destination)
// 设置标志
//o._ready = true;
//o._loaded = true;
//o._finish = true;
// 完成事件
//var event = new MO.SEvent(o);
//o.processLoadListener(event);
//event.dispose();
}
//==========================================================
// 数据解码失败。
//
// @method
// @param uri:String 网络地址
// @return bool 是否已加载
//==========================================================
public onDecodeFailure(buffer) {
var o = this;
//o._finish = true;
//MO.Logger.error(o, 'Decode audio buffer failure. (url={1})', o._url);
}
//==========================================================
// 数据加载处理。
//
// @method
// @param connection:FHttpConnection 网络链接
//==========================================================
public onLoad(connection) {
var o = this;
//var data = connection.outputData();
//var contextHandle = o._context.handle();
//contextHandle.decodeAudioData(data, o.onDecodeSuccess.bind(o), o.onDecodeFailure.bind(o));
}
//==========================================================
// 测试资源是否加载好。
//
// @method
// @return Boolean 是否加载
//==========================================================
public testReady() {
//return this._ready;
}
//==========================================================
// 加载网络地址资源。
//
// @method
// @param uri:String 网络地址
//==========================================================
public loadUrl(uri) {
var o = this;
// 获得地址
//var url = o._url = MO.Console.find(MO.FEnvironmentConsole).parse(uri);
// 加载数据流
//var connection = MO.Console.find(MO.FHttpConsole).sendAsync(o._url);
//connection.addLoadListener(o, o.onLoad);
}
//==========================================================
// 播放处理。
//
// @method
// @param position:Integer 开始位置
//==========================================================
public play(position) {
//this._buffer.start(MO.Lang.Integer.nvl(position));
}
//==========================================================
// 释放处理。
//
// @method
//==========================================================
public dispose() {
super.dispose();
}
}