@ikonai/sdk 0.0.36 → 0.0.37

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.
@@ -19,5 +19,10 @@ export declare const PCM_POST_TARGET_MS = 80;
19
19
  export declare const PCM_POST_MAX_INTERVAL_MS = 50;
20
20
  export declare const MAX_PENDING_FRAMES = 64;
21
21
  export declare const MULTI_STREAM_NORMALIZATION_ENABLED = true;
22
+ export declare const AUDIO_CAPTURE_DEFAULT_SAMPLE_RATE = 48000;
23
+ export declare const AUDIO_CAPTURE_DEFAULT_CHANNELS = 1;
22
24
  export declare const AUDIO_CAPTURE_FRAME_DURATION_MS = 20;
23
25
  export declare const AUDIO_CAPTURE_DEFAULT_BITRATE = 32000;
26
+ export declare const AUDIO_CAPTURE_DEFAULT_COMPLEXITY = 5;
27
+ export declare const AUDIO_CAPTURE_MIN_BITRATE = 8000;
28
+ export declare const AUDIO_CAPTURE_MAX_BITRATE = 128000;
@@ -1,4 +1,14 @@
1
1
  import { IkonClient } from '../client/ikon-client';
2
+ export interface IkonAudioCaptureConfig {
3
+ /**
4
+ * Threading preferences for audio capture.
5
+ * These mirror the playback threading options where applicable.
6
+ */
7
+ threading?: {
8
+ /** Prefer WebCodecs AudioEncoder over WASM Opus. Default: false */
9
+ preferWebCodecs?: boolean;
10
+ };
11
+ }
2
12
  export interface IkonAudioCaptureRequest {
3
13
  userGesture?: boolean;
4
14
  constraints?: MediaTrackConstraints;
@@ -22,7 +32,8 @@ export declare class IkonAudioCapture {
22
32
  private audioContext;
23
33
  private nextTrackId;
24
34
  private captures;
25
- constructor(client: IkonClient);
35
+ private readonly config;
36
+ constructor(client: IkonClient, config?: IkonAudioCaptureConfig);
26
37
  private allocateTrackId;
27
38
  private ensureWorker;
28
39
  private ensureSendPort;
@@ -28,15 +28,6 @@ export interface IkonAudioPlaybackConfig {
28
28
  /** Allow background audio on mobile. Default: false */
29
29
  allowOnMobile?: boolean;
30
30
  };
31
- /**
32
- * Media Session metadata for notifications/lock screen.
33
- */
34
- mediaSession?: {
35
- /** Title shown in media notifications. Default: 'Audio' */
36
- title?: string;
37
- /** Artist shown in media notifications. Default: 'Ikon AI App' */
38
- artist?: string;
39
- };
40
31
  /**
41
32
  * Audio debugging/diagnostics configuration.
42
33
  */
@@ -84,7 +75,15 @@ export declare class IkonAudioPlayback {
84
75
  private silentAudioElement;
85
76
  private readonly fallbackQueues;
86
77
  private readonly activeStreams;
78
+ private mediaSessionConfig;
87
79
  constructor(client: IkonClient, config?: IkonAudioPlaybackConfig);
80
+ /**
81
+ * Set Media Session metadata for OS-level media controls (lock screen, notifications).
82
+ */
83
+ setMediaSession(config: {
84
+ title?: string;
85
+ artist?: string;
86
+ } | null): void;
88
87
  /**
89
88
  * Enable or disable audio playback.
90
89
  *
@@ -1,11 +1,14 @@
1
1
  import { IkonClient } from '../client/ikon-client';
2
- import { IkonAudioCapture } from './ikon-audio-capture';
2
+ import { IkonAudioCapture, IkonAudioCaptureConfig } from './ikon-audio-capture';
3
3
  import { IkonImageCapture } from './ikon-image-capture';
4
4
  import { IkonVideoCapture } from './ikon-video-capture';
5
+ export interface IkonMediaCaptureConfig {
6
+ audio?: IkonAudioCaptureConfig;
7
+ }
5
8
  export declare class IkonMediaCapture {
6
9
  readonly audio: IkonAudioCapture;
7
10
  readonly video: IkonVideoCapture;
8
11
  readonly image: IkonImageCapture;
9
- constructor(client: IkonClient);
12
+ constructor(client: IkonClient, config?: IkonMediaCaptureConfig);
10
13
  dispose(): void;
11
14
  }
@@ -1,9 +1,17 @@
1
1
  import { IkonClient } from '../client/ikon-client';
2
2
  import { IkonAudioPlayback, IkonAudioPlaybackConfig } from './ikon-audio-playback';
3
3
  import { IkonVideoPlayback, IkonVideoPlaybackConfig } from './ikon-video-playback';
4
+ export interface MediaSessionConfig {
5
+ /** Title shown in media notifications. Default: 'Audio' */
6
+ title?: string;
7
+ /** Artist shown in media notifications. Default: 'Ikon AI App' */
8
+ artist?: string;
9
+ }
4
10
  export interface IkonMediaConfig {
5
11
  audio?: IkonAudioPlaybackConfig;
6
12
  video?: IkonVideoPlaybackConfig;
13
+ /** Media Session metadata for OS-level media controls (lock screen, notifications). */
14
+ mediaSession?: MediaSessionConfig;
7
15
  }
8
16
  /**
9
17
  * Convenience wrapper for SDK-provided media pipelines.
package/media/index.d.ts CHANGED
@@ -1,14 +1,15 @@
1
1
  export { IkonMedia } from './ikon-media';
2
- export type { IkonMediaConfig } from './ikon-media';
2
+ export type { IkonMediaConfig, MediaSessionConfig } from './ikon-media';
3
3
  export { IkonAudioPlayback } from './ikon-audio-playback';
4
4
  export type { IkonAudioPlaybackConfig } from './ikon-audio-playback';
5
5
  export { IkonVideoPlayback } from './ikon-video-playback';
6
6
  export type { IkonVideoPlaybackConfig } from './ikon-video-playback';
7
7
  export { isSharedArrayBufferSupported, isAudioWorkletSupported } from './capabilities';
8
8
  export { IkonMediaCapture } from './ikon-media-capture';
9
+ export type { IkonMediaCaptureConfig } from './ikon-media-capture';
9
10
  export { IkonVideoCapture } from './ikon-video-capture';
10
11
  export type { IkonVideoCaptureHandle, IkonVideoCaptureRequest, VideoCaptureSource } from './ikon-video-capture';
11
12
  export { IkonAudioCapture } from './ikon-audio-capture';
12
- export type { IkonAudioCaptureHandle, IkonAudioCaptureRequest } from './ikon-audio-capture';
13
+ export type { IkonAudioCaptureHandle, IkonAudioCaptureRequest, IkonAudioCaptureConfig } from './ikon-audio-capture';
13
14
  export { IkonImageCapture } from './ikon-image-capture';
14
15
  export type { IkonImageCaptureRequest, IkonImageCaptureResult } from './ikon-image-capture';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ikonai/sdk",
3
- "version": "0.0.36",
3
+ "version": "0.0.37",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",