如何在 iOS Swift 或 Objective C 中检测 iPhone 卷访问

How to detect an iPhone Volume Access in iOS Swift or Objective C

我已经创建了一个 Unity 基本游戏并为 Android 进行了构建,并且运行良好,但是一旦我尝试为 Xcode 进行构建,就会出现一些问题。 基本上我试图通过 iOS.

中的提高音量和降低音量键来完成一些任务

我会展示Android代码,帮我iOS代码。

    public int GetVolume()
    {
        if (Application.platform == RuntimePlatform.Android)
        {
            AndroidJavaClass up = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            AndroidJavaObject context = up.GetStatic<AndroidJavaObject>("currentActivity");
            AndroidJavaClass audioManagerClass = new AndroidJavaClass("android.media.AudioManager");
            AndroidJavaClass contextClass = new AndroidJavaClass("android.content.Context");
            int AudioManager_STREAM_MUSIC = audioManagerClass.GetStatic<int>("STREAM_MUSIC");
            string Context_AUDIO_SERVICE = contextClass.GetStatic<string>("AUDIO_SERVICE");
            AndroidJavaObject audioService = context.Call<AndroidJavaObject>("getSystemService", Context_AUDIO_SERVICE);
            return audioService.Call<int>("getStreamVolume", AudioManager_STREAM_MUSIC);
        }
        return 0;
    }

更新 Swift

let vol = AVAudioSession.sharedInstance().outputVolume

音频会话可以提供输出音量(iOS >= 6.0)。 在 objective C 中:

float vol = [[AVAudioSession sharedInstance] outputVolume]; NSLog(@"输出音量: %1.2f dB", 20.f*log10f(vol+FLT_MIN));