Hyperloop eventlistener example



我尝试使用折纸

使用AppceleratorHyperloop制作FLAC文件播放器

它可以玩,暂停并停止玩家。但是我无法获得" AddEventListener"模式的工作。我读了一些有关委托方法的示例和一些示例。但是我不是本地iOS编码器,我所有的尝试都失败了。

有人可以告诉我如何为DIDCHANGESTATE函数编码EventListener吗?

这是我不工作的代码

//Application Window Component Constructor
function ApplicationWindow() {
Ti.Media.audioSessionCategory = Ti.Media.AUDIO_SESSION_CATEGORY_PLAYBACK;
var NSURL = require('Foundation/NSURL');
var ORGMEngine = require('OrigamiEngine/ORGMEngine');
var audioPlayer = new ORGMEngine();
var self = Ti.UI.createWindow({
    backgroundColor : '#ffffff'
});
var startStopButton = Ti.UI.createButton({
    title : 'Start/Stop Streaming',
    top : 100,
    width : 200,
    height : 40
});
var pauseResumeButton = Ti.UI.createButton({
    title : 'Pause/Resume Streaming',
    top : 140,
    width : 200,
    height : 40,
    enabled : false
});
self.add(startStopButton);
self.add(pauseResumeButton);
startStopButton.addEventListener('click', function() {
    console.log('audioPlayer.currentState: ' + audioPlayer.currentState);
    // When paused, playing returns false.
    // If both are false, playback is stopped.
    if (audioPlayer.currentState == 1) {
        audioPlayer.stop();
        audioPlayer.release();
        pauseResumeButton.enabled = false;
    } else {
        var url = NSURL.URLWithString('http://faq.fantasticlibrary.de/test.flac');
        audioPlayer.playUrl(url);
        setTimeout(function(){
            console.log(audioPlayer.metadata());
        }, 10000);
        pauseResumeButton.enabled = true;
    }
});
pauseResumeButton.addEventListener('click', function() {
    console.log('audioPlayer.currentState: ' + audioPlayer.currentState);
    if (audioPlayer.currentState == 1) {
        audioPlayer.pause();
    } else {
        audioPlayer.resume();
    }
});
var StateChangeDelegate = Hyperloop.defineClass('MyDelegate', 'NSObject', ['ORGMEngineDelegate']);
StateChangeDelegate.addMethod({
selector: 'engine:didChangeState:',
instance: true,
arguments: ['ORGMEngine', 'ORGMEngineState'],
callback: function (engine, state) {
    if (this.didChangeState) {
        this.didChangeState(engine, state);
    }
}
});
var delegate = new StateChangeDelegate();
delegate.didChangeState = function(ORMEngine,state) {
    console.log('does the state change???');
};
self.addEventListener('close', function() {
    audioPlayer.stop();
    audioPlayer.release();
});
return self;
}
module.exports = ApplicationWindow;

运行演示项目要下载:http://lightapps.de/files/flactest.zip

尝试:

delegate.on('didChangeState', function(ORMEngine,state){
    console.log('does the state change???');
});

我目前无法测试,但我认为这对您有用。

相关内容

最新更新