代码拉取完成,页面将自动刷新
'use strict';
var RNSound = require('react-native').NativeModules.RNSound;
var IsAndroid = RNSound.IsAndroid;
var IsWindows = RNSound.IsWindows;
var resolveAssetSource = require("react-native/Libraries/Image/resolveAssetSource");
var nextKey = 0;
function isRelativePath(path) {
return !/^(\/|http(s?))/.test(path);
}
function Sound(filename, basePath, onError, options) {
var asset = resolveAssetSource(filename);
if (asset) {
this._filename = asset.uri;
onError = basePath;
} else {
this._filename = basePath ? basePath + '/' + filename : filename;
if (IsAndroid && !basePath && isRelativePath(filename)) {
this._filename = filename.toLowerCase().replace(/\.[^.]+$/, '');
}
}
this._loaded = false;
this._key = nextKey++;
this._duration = -1;
this._numberOfChannels = -1;
this._volume = 1;
this._pan = 0;
this._numberOfLoops = 0;
this._speed = 1;
RNSound.prepare(this._filename, this._key, options || {}, (error, props) => {
if (props) {
if (typeof props.duration === 'number') {
this._duration = props.duration;
}
if (typeof props.numberOfChannels === 'number') {
this._numberOfChannels = props.numberOfChannels;
}
}
if (error === null) {
this._loaded = true;
}
onError && onError(error);
});
}
Sound.prototype.isLoaded = function() {
return this._loaded;
};
Sound.prototype.play = function(onEnd) {
if (this._loaded) {
RNSound.play(this._key, (successfully) => onEnd && onEnd(successfully));
} else {
onEnd && onEnd(false);
}
return this;
};
Sound.prototype.pause = function(callback) {
if (this._loaded) {
RNSound.pause(this._key, () => { callback && callback() });
}
return this;
};
Sound.prototype.stop = function(callback) {
if (this._loaded) {
RNSound.stop(this._key, () => { callback && callback() });
}
return this;
};
Sound.prototype.release = function() {
if (this._loaded) {
RNSound.release(this._key);
}
return this;
};
Sound.prototype.getDuration = function() {
return this._duration;
};
Sound.prototype.getNumberOfChannels = function() {
return this._numberOfChannels;
};
Sound.prototype.getVolume = function() {
return this._volume;
};
Sound.prototype.setVolume = function(value) {
this._volume = value;
if (this._loaded) {
if (IsAndroid || IsWindows) {
RNSound.setVolume(this._key, value, value);
} else {
RNSound.setVolume(this._key, value);
}
}
return this;
};
Sound.prototype.getPan = function() {
return this._pan;
};
Sound.prototype.setPan = function(value) {
if (this._loaded) {
RNSound.setPan(this._key, this._pan = value);
}
return this;
};
Sound.prototype.getNumberOfLoops = function() {
return this._numberOfLoops;
};
Sound.prototype.setNumberOfLoops = function(value) {
this._numberOfLoops = value;
if (this._loaded) {
if (IsAndroid || IsWindows) {
RNSound.setLooping(this._key, !!value);
} else {
RNSound.setNumberOfLoops(this._key, value);
}
}
return this;
};
Sound.prototype.setSpeed = function(value) {
this._setSpeed = value;
if (this._loaded) {
if (!IsWindows) {
RNSound.setSpeed(this._key, value);
}
}
return this;
};
Sound.prototype.getCurrentTime = function(callback) {
if (this._loaded) {
RNSound.getCurrentTime(this._key, callback);
}
};
Sound.prototype.setCurrentTime = function(value) {
if (this._loaded) {
RNSound.setCurrentTime(this._key, value);
}
return this;
};
// android only
Sound.prototype.setSpeakerphoneOn = function(value) {
if (IsAndroid) {
RNSound.setSpeakerphoneOn(this._key, value);
}
};
// ios only
// This is deprecated. Call the static one instead.
Sound.prototype.setCategory = function(value) {
Sound.setCategory(value, false);
}
Sound.enable = function(enabled) {
RNSound.enable(enabled);
};
Sound.enableInSilenceMode = function(enabled) {
if (!IsAndroid && !IsWindows) {
RNSound.enableInSilenceMode(enabled);
}
};
Sound.setActive = function(value) {
if (!IsAndroid && !IsWindows) {
RNSound.setActive(value);
}
};
Sound.setCategory = function(value, mixWithOthers = false) {
if (!IsAndroid && !IsWindows) {
RNSound.setCategory(value, mixWithOthers);
}
};
Sound.setMode = function(value) {
if (!IsAndroid && !IsWindows) {
RNSound.setMode(value);
}
};
Sound.MAIN_BUNDLE = RNSound.MainBundlePath;
Sound.DOCUMENT = RNSound.NSDocumentDirectory;
Sound.LIBRARY = RNSound.NSLibraryDirectory;
Sound.CACHES = RNSound.NSCachesDirectory;
module.exports = Sound;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。