Сохранение и воспроизведение звука на андроид

Программирование для iPhone & Android

Сохранение и воспроизведение звука на андроид

Сообщение neznayka 21 авг 2014, 14:28

Возникла проблема записи и воспроизведения звука на планшете с андроид.

И так, по порядку.

1) Есть приложение которое записывает звук через микрофон, сохраняет его и затем воспроизводит по нажатию кнопки.

2) Проблема:
- В редакторе "Unity 4.3.2" все работает как часы.
- В эмуляторе андроид "BlueStack" запись воспроизводится, но сохранятся в хранилище не желает.
- На планшете даже запись не воспроизводится.

3) В AndroidManifest.xml внесены следующие разрешения:
- <uses-permission android:name="android.permission.RECORD_AUDIO"/> // разрешает записывать аудио
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> // разрешает запись в хранилище
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> // разрешает чтение из хранилища


Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using System.IO;

public class testSceneScript : MonoBehaviour
{
    float SW = Screen.width;
    float SH = Screen.height;
    AudioClip micro;
    AudioClip playAudioClip;

 void OnGUI()
    {
        if (GUI.Button(new Rect(SW * 0.1f, SH * 0.1f, SW * 0.2f, SH * 0.1f), "play"))
        {
            deleteFirstAudioClip(); // уничтожает объект, воспроизводящий какой-либо аудиоклип в данный момент, если он есть конечно. Вряд ли причина в нем.
            AudioSource.PlayClipAtPoint(playAudioClip, transform.position);
        }
        if (GUI.Button(new Rect(SW * 0.4f, SH * 0.1f, SW * 0.2f, SH * 0.1f), "stop"))
        {
            Microphone.End(nameMicrophone);
            deleteFirstAudioClip();
        }
        if (GUI.Button(new Rect(SW * 0.1f, SH * 0.3f, SW * 0.2f, SH * 0.1f), "REC"))
        {
            micro = Microphone.Start(null, true, 10, 44100);
            playAudioClip = micro;
        }
        if (GUI.Button(new Rect(SW * 0.4f, SH * 0.3f, SW * 0.2f, SH * 0.1f), "save"))
        {
             // сохраняет аудиоклип как файл "test.wav", по адресу :  (Application.dataPath + "/Resources/recAudio")
            SavWav.Save("test", micro);
        }

        if (GUI.Button(new Rect(SW * 0.7f, SH * 0.3f, SW * 0.2f, SH * 0.1f), "load"))
        {
            playAudioClip = Resources.Load("recAudio/test", typeof(AudioClip)) as AudioClip;
        }
    }

}
neznayka
UNец
 
Сообщения: 17
Зарегистрирован: 12 мар 2014, 13:23

Re: Сохранение и воспроизведение звука на андроид

Сообщение neznayka 23 авг 2014, 14:29

За 2 дня - 0 ответов и 10 просмотров, два из которых мои, значит 8 человек все-таки заинтересовались.

Все проблемы решились.

1) Не сохранялась запись. На андроид ,без прав рута, нельзя сохранять по месту установки приложения, поэтому попытка сохранить в папку "Resources" не проходила.
Сохранять надо по адресу "/mnt/sdcard/".
И загружать примерно так:
Синтаксис:
Используется csharp
//-----------------------------------

            targetAudioClip = "/test.wav";
            myPath = "/mnt/sdcard/testDir";
            fullPathDir = new DirectoryInfo(myPath).FullName;     // полный путь до директории
            myClip = new WWW("file:///" + fullPathDir + targetAudioClip);   // WWW myClip
            playAudioClip = myClip.GetAudioClip(false, false);  // AudioClip playAudioClip

//-----------------------------------
 



2) Запись на планшете не вопроизводилась. Проблема решилась перезагрузкой планшета.
neznayka
UNец
 
Сообщения: 17
Зарегистрирован: 12 мар 2014, 13:23

Re: Сохранение и воспроизведение звука на андроид

Сообщение maptbih007 29 мар 2020, 22:56

Можешь написать в вк? Очень нужно задать пару вопросов!
https://vk.com/martynov_e_s
maptbih007
UNец
 
Сообщения: 16
Зарегистрирован: 20 мар 2020, 13:31


Вернуться в iPhone & Android

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 3