Skip to content

Commit

Permalink
doc(AudioPlayer): ドキュメントを日本語化
Browse files Browse the repository at this point in the history
  • Loading branch information
EbiseLutica committed Oct 30, 2024
1 parent c7a858a commit 962245c
Showing 1 changed file with 33 additions and 21 deletions.
54 changes: 33 additions & 21 deletions Promete/Audio/AudioPlayer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@
namespace Promete.Audio;

/// <summary>
/// Provides audio source playback functionality.
/// オーディオデータを再生するためのクラスです。
/// </summary>
public class AudioPlayer : IDisposable
{
/// <summary>
/// Initialize a new instance of <see cref="AudioPlayer"/> .
/// この <see cref="AudioPlayer"/> の新しいインスタンスを初期化します。
/// </summary>
public unsafe AudioPlayer()
{
Expand All @@ -39,56 +39,61 @@ public unsafe AudioPlayer()
}

/// <summary>
/// Get or set volume.
/// 音量を取得または設定します。
/// </summary>
/// <value>Volume range in 0.0 ~ 1.0.</value>
/// <value>音量の範囲は 0.0 1.0 です。</value>
public float Gain
{
get => gain;
set => gain = Math.Clamp(value, 0f, 1f);
}

/// <summary>
/// Get or set pan.
/// パンを取得または設定します。
/// <value>パンの範囲は -1.0 ~ 1.0 です。</value>
/// </summary>
/// <value>Volume range in -1.0 ~ 1.0.</value>
public float Pan
{
get => pan;
set => pan = Math.Clamp(value, -1f, 1f);
}

/// <summary>
/// Get or set pitch of this player.
/// このプレイヤーのピッチを取得または設定します。
/// </summary>
/// <value>Pitch ratio value. Default is 1.</value>
/// <value>ピッチ比率の値。デフォルトは 1 です。</value>
public float Pitch { get; set; } = 1;

/// <summary>
/// Get whether this player is playing
/// このプレイヤーが再生中かどうかを取得します
/// </summary>
public bool IsPlaying { get; private set; }

/// <summary>
/// Get current playing time of this player in milliseconds.
/// 再生中の音源の現在の再生位置をミリ秒単位で取得します。
/// </summary>
public int Time { get; private set; }

/// <summary>
/// Get current playing time of this player in samples.
/// 再生中の音源の現在の再生位置をサンプル単位で取得します。
/// </summary>
public int TimeInSamples { get; private set; }

/// <summary>
/// Get length of loaded audio in milliseconds.
/// 再生中の音源の長さをミリ秒単位で取得します。
/// </summary>
public int Length { get; private set; }

/// <summary>
/// Get length of loaded audio in samples.
/// 再生中の音源の長さをサンプル単位で取得します。
/// </summary>
public int LengthInSamples { get; private set; }

/// <summary>
/// このプレイヤーが一時停止中かどうかを取得します。
/// </summary>
public bool IsPausing { get; private set; }

public int BufferSize { get; set; } = 10000;

private float gain;
Expand All @@ -101,10 +106,10 @@ public float Pan
private readonly nint device;

/// <summary>
/// Start playing.
/// 再生を開始します。
/// </summary>
/// <param name="source">A <see cref="IAudioSource"/> to play.</param>
/// <param name="loop">Sample number of loop point. To disable loop, specify<c>null</c>.</param>
/// <param name="source">再生する音源。</param>
/// <param name="loop">ループ開始位置(サンプル単位)。ループ再生を行わない場合は<c>null</c>を指定します。</param>
public async ValueTask PlayAsync(IAudioSource source, int? loop = default)
{
stopToken?.Stop();
Expand All @@ -113,10 +118,10 @@ public async ValueTask PlayAsync(IAudioSource source, int? loop = default)
}

/// <summary>
/// Start playing.
/// 再生を開始します。
/// </summary>
/// <param name="source">A <see cref="IAudioSource"/> to play.</param>
/// <param name="loop">Sample number of loop point. To disable loop, specify<c>null</c>.</param>
/// <param name="source">再生する音源。</param>
/// <param name="loop">ループ開始位置(サンプル単位)。ループ再生を行わない場合は<c>null</c>を指定します。</param>
public async void Play(IAudioSource source, int? loop = default)
{
if (IsPlaying)
Expand All @@ -129,9 +134,9 @@ public async void Play(IAudioSource source, int? loop = default)
}

/// <summary>
/// Stop playing.
/// 再生を停止します。
/// </summary>
/// <param name="time">Fade-out time. Specify 0 to stop soon.</param>
/// <param name="time">フェードアウトにかかる時間(秒単位)。0を指定した場合は即時停止します。</param>
public void Stop(float time = 0)
{
if (time == 0)
Expand Down Expand Up @@ -163,6 +168,13 @@ public void Stop(float time = 0)
Time = TimeInSamples = 0;
}

/// <summary>
/// 指定した音源をその場で再生します。
/// </summary>
/// <param name="source"></param>
/// <param name="_gain"></param>
/// <param name="pitch"></param>
/// <param name="pan"></param>
public async void PlayOneShot(IAudioSource source, float _gain = 1, float pitch = 1, float pan = 0)
{
await PlayOneShotAsync(source, _gain, pitch, pan);
Expand Down

0 comments on commit 962245c

Please sign in to comment.