如何在 iOS Swift 或 Objective C 中检测 iPhone 卷访问 [关闭]

Posted

技术标签:

【中文标题】如何在 iOS Swift 或 Objective C 中检测 iPhone 卷访问 [关闭]【英文标题】:How to detect an iPhone Volume Access in iOS Swift or Objective C [closed] 【发布时间】: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 中实现目标而尝试过什么? 【参考方案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 音量调高和调低按钮做一些功能。

以上是关于如何在 iOS Swift 或 Objective C 中检测 iPhone 卷访问 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中使用核心图形上下文绘制圆 - Objective-C 或 Swift

如何在 Flutter 插件的 Swift 编写的 iOS 部分中使用 Objective-C 框架

如何在 iOS 上将“MongoDB 日期时间(ISO 日期)”解析为 NSDate(swift 和 Objective-c)

如何在 iOS 应用程序的同一个项目中集成 Objective-C 和 Swift pod

iOS 应用内购买:Objective-C 与 Swift [重复]

如何使用iOS原生语言编写Swift类?