streamify-audio 2.1.11 → 2.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,7 @@ const player = manager.get(guildId);
14
14
 
15
15
  ## Playback Methods
16
16
 
17
- ### play(track)
17
+ ### play(track, options?)
18
18
 
19
19
  Plays a track immediately. If something is playing, adds to queue and skips.
20
20
 
@@ -23,6 +23,29 @@ const result = await manager.search('never gonna give you up');
23
23
  await player.play(result.tracks[0]);
24
24
  ```
25
25
 
26
+ **Options:**
27
+ - `startPosition` - Start playback at a specific position in milliseconds
28
+ - `volume` - Set volume before playing (0-200)
29
+ - `filters` - Apply filters before playing
30
+
31
+ ```javascript
32
+ // Start playing at 30 seconds
33
+ await player.play(track, { startPosition: 30000 });
34
+
35
+ // Start with specific volume
36
+ await player.play(track, { volume: 50 });
37
+
38
+ // Start with filters applied
39
+ await player.play(track, { filters: { bass: 10, nightcore: true } });
40
+
41
+ // Combine options (useful for session restoration)
42
+ await player.play(track, {
43
+ startPosition: savedPositionMs,
44
+ volume: savedVolume,
45
+ filters: savedFilters
46
+ });
47
+ ```
48
+
26
49
  ### pause()
27
50
 
28
51
  Pauses playback and destroys the stream to save resources.
package/index.d.ts CHANGED
@@ -237,6 +237,13 @@ declare module 'streamify-audio' {
237
237
  on(event: 'playerDestroy', listener: (player: Player) => void): this;
238
238
  }
239
239
 
240
+ export interface PlayOptions {
241
+ startPosition?: number;
242
+ seek?: number;
243
+ volume?: number;
244
+ filters?: Filters;
245
+ }
246
+
240
247
  export class Player extends EventEmitter {
241
248
  constructor(manager: Manager, options: any);
242
249
 
@@ -261,7 +268,7 @@ declare module 'streamify-audio' {
261
268
  disconnect(): boolean;
262
269
  destroy(): void;
263
270
 
264
- play(track: Track): Promise<void>;
271
+ play(track: Track, options?: PlayOptions): Promise<void>;
265
272
  pause(destroyStream?: boolean): boolean;
266
273
  resume(): Promise<boolean>;
267
274
  skip(): Promise<Track | null>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "streamify-audio",
3
- "version": "2.1.11",
3
+ "version": "2.1.12",
4
4
  "description": "Dual-mode audio library: HTTP streaming proxy + Discord player (Lavalink alternative). Supports YouTube, Spotify, SoundCloud with audio filters.",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -261,7 +261,19 @@ class Player extends EventEmitter {
261
261
  await this.connect();
262
262
  }
263
263
 
264
- const startPosition = options.startPosition || options.seek || 0;
264
+ const playOptions = {
265
+ startPosition: options.startPosition || options.seek || 0,
266
+ volume: options.volume,
267
+ filters: options.filters
268
+ };
269
+
270
+ if (options.volume !== undefined) {
271
+ this._volume = Math.max(0, Math.min(200, options.volume));
272
+ }
273
+
274
+ if (options.filters) {
275
+ this._filters = { ...this._filters, ...options.filters };
276
+ }
265
277
 
266
278
  if (this.queue.current) {
267
279
  this.queue.add(track, 0);
@@ -269,7 +281,7 @@ class Player extends EventEmitter {
269
281
  }
270
282
 
271
283
  this.queue.setCurrent(track);
272
- return this._playTrack(track, startPosition);
284
+ return this._playTrack(track, playOptions.startPosition);
273
285
  }
274
286
 
275
287
  async _playTrack(track, startPosition = 0) {