mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-10 08:33:30 +01:00
handle string ffmpeg input (#2064)
* handle string ffmpeg input * rename stuff for new purpose * file prefix isn't needed * pass tests * remove dumb spaces in dispatcher docs
This commit is contained in:
@@ -41,7 +41,7 @@ class VoiceBroadcast extends EventEmitter {
|
||||
* .catch(console.error);
|
||||
*/
|
||||
playFile(file, options) {
|
||||
return this.player.playUnknownStream(`file:${file}`, options);
|
||||
return this.player.playUnknown(file, options);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -51,7 +51,7 @@ class VoiceBroadcast extends EventEmitter {
|
||||
* @returns {StreamDispatcher}
|
||||
*/
|
||||
playArbitraryInput(input, options) {
|
||||
return this.player.playUnknownStream(input, options);
|
||||
return this.player.playUnknown(input, options);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -71,7 +71,7 @@ class VoiceBroadcast extends EventEmitter {
|
||||
* .catch(console.error);
|
||||
*/
|
||||
playStream(stream, options) {
|
||||
return this.player.playUnknownStream(stream, options);
|
||||
return this.player.playUnknown(stream, options);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -457,7 +457,7 @@ class VoiceConnection extends EventEmitter {
|
||||
* .catch(console.error);
|
||||
*/
|
||||
playFile(file, options) {
|
||||
return this.player.playUnknownStream(`file:${file}`, options);
|
||||
return this.player.playUnknown(file, options);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -467,7 +467,7 @@ class VoiceConnection extends EventEmitter {
|
||||
* @returns {StreamDispatcher}
|
||||
*/
|
||||
playArbitraryInput(input, options) {
|
||||
return this.player.playUnknownStream(input, options);
|
||||
return this.player.playUnknown(input, options);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -487,7 +487,7 @@ class VoiceConnection extends EventEmitter {
|
||||
* .catch(console.error);
|
||||
*/
|
||||
playStream(stream, options) {
|
||||
return this.player.playUnknownStream(stream, options);
|
||||
return this.player.playUnknown(stream, options);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
const Collection = require('../../../util/Collection');
|
||||
const StreamDispatcher = require('./StreamDispatcher');
|
||||
|
||||
/**
|
||||
|
||||
@@ -147,7 +147,7 @@ class StreamDispatcher extends Writable {
|
||||
|
||||
/**
|
||||
* Sets the expected packet loss percentage if using a compatible Opus stream.
|
||||
* @param {number} value between 0 and 1
|
||||
* @param {number} value between 0 and 1
|
||||
* @returns {boolean} Returns true if it was successfully set.
|
||||
*/
|
||||
setPLP(value) {
|
||||
@@ -158,7 +158,7 @@ class StreamDispatcher extends Writable {
|
||||
|
||||
/**
|
||||
* Enables or disables forward error correction if using a compatible Opus stream.
|
||||
* @param {boolean} enabled true to enable
|
||||
* @param {boolean} enabled true to enable
|
||||
* @returns {boolean} Returns true if it was successfully set.
|
||||
*/
|
||||
setFEC(enabled) {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
const EventEmitter = require('events').EventEmitter;
|
||||
const { Readable: ReadableStream } = require('stream');
|
||||
const prism = require('prism-media');
|
||||
const StreamDispatcher = require('../dispatcher/StreamDispatcher');
|
||||
|
||||
@@ -16,7 +17,7 @@ const FFMPEG_ARGUMENTS = [
|
||||
* @extends {EventEmitter}
|
||||
*/
|
||||
class BasePlayer extends EventEmitter {
|
||||
constructor(voiceConnection) {
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
this.dispatcher = null;
|
||||
@@ -39,10 +40,14 @@ class BasePlayer extends EventEmitter {
|
||||
}
|
||||
}
|
||||
|
||||
playUnknownStream(stream, options) {
|
||||
playUnknown(input, options) {
|
||||
this.destroyDispatcher();
|
||||
const ffmpeg = new prism.FFmpeg({ args: FFMPEG_ARGUMENTS });
|
||||
stream.pipe(ffmpeg);
|
||||
|
||||
const isStream = input instanceof ReadableStream;
|
||||
const args = isStream ? FFMPEG_ARGUMENTS : ['-i', input, ...FFMPEG_ARGUMENTS];
|
||||
const ffmpeg = new prism.FFmpeg({ args });
|
||||
if (isStream) input.pipe(ffmpeg);
|
||||
|
||||
return this.playPCMStream(ffmpeg, options, { ffmpeg });
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
const prism = require('prism-media');
|
||||
const BroadcastDispatcher = require('../dispatcher/BroadcastDispatcher');
|
||||
const BasePlayer = require('./BasePlayer');
|
||||
|
||||
|
||||
2
typings
2
typings
Submodule typings updated: 697fc933de...5131e88ffe
Reference in New Issue
Block a user