> For the complete documentation index, see [llms.txt](https://bizachi-dev.gitbook.io/languagesystem-pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bizachi-dev.gitbook.io/languagesystem-pro/getting-started/publish-your-docs-7.md).

# Importing Audio into Custom Script

### Importing Audio into Custom Script

#### Overview

The **LanguageSystem PRO** supports language-specific audio clips, allowing you to play different audio files based on the current language setting. This system is managed by the **LanguageAudioManager**, which uses audio IDs to retrieve the appropriate audio clip for the selected language.

In this section, you will learn how to:

* Retrieve and play an audio clip based on the selected language using its audio ID.
* Implement the **CustomAudioImport** component to integrate this feature into your custom scripts.

#### Retrieving Language-Specific Audio Clips

To access an audio clip based on the current language, use the **LanguageAudioManager**. It manages all audio clips by associating them with an `audioID` and a list of language-specific `AudioClip` objects.

**Example: How to Retrieve and Play an Audio Clip**

Here is a basic example of how to retrieve and play an audio clip using the **LanguageAudioManager**.

```csharp
public class PlayLocalizedAudio : MonoBehaviour
{
    public string audioID; // Unique audio ID for this sound
    public AudioSource audioSource; // The AudioSource that will play the audio

    private void Start()
    {
        // Get the audio clip based on the current language and audioID
        AudioClip clip = LanguageAudioManager.Instance.GetAudioByID(audioID);

        // Check if the clip exists, then play it
        if (clip != null)
        {
            audioSource.clip = clip;
            audioSource.Play();
        }
        else
        {
            Debug.LogError($"Audio clip for '{audioID}' not found.");
        }
    }
}
```

In this example:

* The `audioID` is used to find the appropriate audio clip for the current language.
* The audio is played via the provided `AudioSource` on the GameObject.

***

#### CustomAudioImport Example

To make this process easier, you can use the **CustomAudioImport** component, which serves as a practical implementation of the **LanguageAudioManager** in a reusable format. This component automatically retrieves and plays the correct audio clip for the current language based on a given `audioID`.

**How to Use CustomAudioImport**

Follow these steps to integrate **CustomAudioImport**:

1. **Attach CustomAudioImport**: Add the **CustomAudioImport** component to any GameObject with an `AudioSource` component. If it doesn't have an `AudioSource`, you'll need to add one.
2. **Set the Audio ID**: In the **CustomAudioImport** component, set the `audioID` field to the desired audio ID (e.g., "greeting", "farewell").
3. **Automatic Playback**: Once set up, **CustomAudioImport** will automatically retrieve the appropriate audio clip for the current language when the GameObject is activated.

**CustomAudioImport Script Example**

```csharp
csharpCopiar códigousing UnityEngine;

public class CustomAudioImport : MonoBehaviour
{
    public string audioID; // The ID of the audio to play
    private AudioSource audioSource;

    private void Awake()
    {
        audioSource = GetComponent<AudioSource>();

        // Automatically play the audio when the component starts
        PlayAudioManually();
    }

    /// <summary>
    /// Manually plays the audio associated with the current language and audio ID.
    /// </summary>
    public void PlayAudioManually()
    {
        if (audioSource == null)
        {
            Debug.LogError("No AudioSource found on this GameObject.");
            return;
        }

        AudioClip clip = LanguageAudioManager.Instance.GetAudioByID(audioID);
        if (clip != null)
        {
            audioSource.clip = clip;
            audioSource.Play();
        }
        else
        {
            Debug.LogError($"Audio clip for '{audioID}' not found.");
        }
    }
}
```

#### Customizing Audio for Each Language

Using **CustomAudioImport** or manual scripting, you can customize audio playback for each language. This flexibility allows for localized voiceovers, sound effects, or notifications tailored to your audience’s language preference.

#### Summary of Key Functions in LanguageAudioManager

* **GetAudioByID(audioID)**: Retrieves the `AudioClip` for the current language and the given `audioID`.
* **PlayAudioByID(audioID, AudioSource)**: Plays the audio clip for the `audioID` using the provided `AudioSource`.
* **AudioExists(audioID)**: Checks if an audio clip exists for the given `audioID` in the current language.
