UNPKG

react-native-omplayer

Version:

video player for react-native

160 lines (129 loc) 3.68 kB
/** * Created by lcg on 2017/6/16. */ import { Platform, NativeModules } from 'react-native'; import eventManager from './eventManager'; const OMAudioPlayerManager = Platform.OS === 'android' ? NativeModules.OMAudioPlayerManagerIjk : NativeModules.OMAudioPlayerManager; // const OMAudioPlayerManager = NativeModules.OMAudioPlayerManagerIjk; export default class Audio { constructor(listeners){ this._listeners = listeners; } init(){ const self = this; return new Promise((resolve, reject) => { OMAudioPlayerManager.createAudioPlayer((err, id) => { if (err){ reject(err); } else { self._id = id; resolve(); } }); }) .then(() => { eventManager.addAudio(self._id, this); }); } uninit(){ if (this._id){ eventManager.removeAudio(this._id); OMAudioPlayerManager.releaseAudioPlayer(this._id); this._id = null; } } setToken(token) { if (token) { OMAudioPlayerManager.setToken(token, this._id); } } setSrc(src){ let uri = src; if (uri && uri.match(/^\//)) { uri = `file://${uri}`; } if(this._id){ OMAudioPlayerManager.setSrc(uri, this._id); } } setRepeat(repeat){ if(this._id){ OMAudioPlayerManager.setRepeat(repeat, this._id); } } setMuted(muted){ if(this._id){ OMAudioPlayerManager.setMuted(muted, this._id); } } setVolume(volume){ if(this._id){ OMAudioPlayerManager.setVolume(volume, this._id); } } setRate(rate){ if (this._id){ OMAudioPlayerManager.setRate(rate, this._id); } } seek(seek){ if (this._id){ OMAudioPlayerManager.seek(seek, this._id); } } play(){ if(this._id){ OMAudioPlayerManager.play(this._id); } } pause(){ if(this._id){ OMAudioPlayerManager.pause(this._id); } } stop(){ if(this._id){ OMAudioPlayerManager.stop(this._id); } } onLoadStart(event){ this._listeners.onLoadStart && this._listeners.onLoadStart(event); } onLoad(event){ this._listeners.onLoad && this._listeners.onLoad(event); } onLoadStalled(event) { this._listeners.onLoadStalled && this._listeners.onLoadStalled(event); } onLoadResume(event) { this._listeners.onLoadResume && this._listeners.onLoadResume(event); } onError(event){ this._listeners.onError && this._listeners.onError(event); } onProgress(event){ this._listeners.onProgress && this._listeners.onProgress(event); } onSeek(event){ this._listeners.onSeek && this._listeners.onSeek(event); } onEnd(event){ this._listeners.onEnd && this._listeners.onEnd(event); } onReadyForPlay(event){ this._listeners.onReadyForPlay && this._listeners.onReadyForPlay(event); } onStalled(event){ this._listeners.onStalled && this._listeners.onStalled(event); } onResume(event){ this._listeners.onResume && this._listeners.onResume(event); } onRateChange(event){ this._listeners.onRateChange && this._listeners.onRateChange(event); } onPlayerError(event){ this._listeners.onPlayerError && this._listeners.onPlayerError(event); } }