【问题标题】:How to detect an iPhone Volume Access in iOS Swift or Objective C [closed]如何在 iOS Swift 或 Objective C 中检测 iPhone 卷访问 [关闭]
【发布时间】:2020-10-21 19:01:27
【问题描述】:

我已经创建了一个 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;
    }

【问题讨论】:

  • SO 不是免费的代码编写服务。如果不表现出至少一些努力,您就不太可能在这里收到答案。您为在 Swift 中实现目标而尝试过什么?

标签: android ios swift unity3d game-development


【解决方案1】:

Swift 更新

let vol = AVAudioSession.sharedInstance().outputVolume

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

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

【讨论】:

  • 感谢您的回复,@ajjjjjjjjj 我正在寻找用于在我的统一项目中实现的 C# 代码。
  • 欢迎您。但是你给了swift的标签。这就是我回答的原因
  • 你能帮我解决这个问题吗,我需要用 iPhone 音量调高和调低按钮做一些功能。
猜你喜欢
  • 2014-01-26
  • 1970-01-01
  • 2015-01-19
  • 1970-01-01
  • 2017-10-13
  • 2016-04-25
  • 2016-07-27
  • 1970-01-01
  • 2017-10-12
相关资源
最近更新 更多