Everyplay держит мой микрофон UNITY3D iOS
У меня есть один вопрос относительно реализации видеозаписи Everyplay на устройствах iOS.
Проблема возникает, когда я заканчиваю запись. Я захожу в предварительный просмотр каждого видео, где вы можете редактировать видео и делиться им. Затем, когда я возвращаюсь к своей игре, нажимая на кнопку назад или после обмена видео, я не могу использовать микрофон в Unity.
Я думаю, что Everyplay все еще держит мой микрофон, но я не знаю, как его выпустить. У меня такая же реализация на Android, и она отлично работает. Я думаю, что проблема существует, потому что на iOS у вас есть возможность редактировать видео с помощью микрофона или камеры.
Какие-нибудь мысли?
1 ответ
Мне не удалось скопировать вашу проблему на iOS7. Однако проблема действительно существовала на iOS6. Я сделал небольшой взлом, который, кажется, исправить это на моем устройстве.
EveryplayMicHack.cs (скопируйте это в папку Plugins / Everyplay / Scripts):
using UnityEngine;
using System.Runtime.InteropServices;
public class EveryplayMicHack {
public static void EnableRecording() {
#if UNITY_IPHONE && !UNITY_EDITOR
SetPreferredSampleRate(AudioSettings.outputSampleRate);
#endif
}
#if UNITY_IPHONE && !UNITY_EDITOR
[DllImport ("__Internal")]
private static extern void SetPreferredSampleRate(int sampleRate);
#endif
}
EveryplayMicHack.h (скопируйте это в папку плагинов / iOS)
#import <AVFoundation/AVFoundation.h>
void SetPreferredSampleRate(int sampleRate);
EveryplayMicHack.m (скопируйте это в папку плагинов / iOS)
#import "EveryplayMicHack.h"
void SetPreferredSampleRate(int sampleRate) {
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setPreferredHardwareSampleRate:sampleRate error:nil];
}
И прежде чем инициализировать свой микрофон, вызовите: EveryplayMicHack.EnableRecording ();
// Something like this
EveryplayMicHack.EnableRecording();
myMicAudioSource.clip = null;
myMicAudioSource.clip = Microphone.Start("Built-in Microphone", ...
Я надеюсь, что это работает и для вас!:)