Получить системный том iOS
28248 просмотра
8 ответа
Мой случай прост: мне нужно воспроизвести предупреждающий сигнал и убедиться, что пользователь его услышит, поэтому я хочу проверить громкость системы.
Как узнать текущий объем системы?
Автор: Joris van Liempd iDeveloper Источник Размещён: 12.08.2019 06:32Ответы (8)
37 плюса
Обновление для Swift
let vol = AVAudioSession.sharedInstance().outputVolume
Аудио сеанс может обеспечить выходную громкость (iOS> = 6.0).
float vol = [[AVAudioSession sharedInstance] outputVolume];
NSLog(@"output volume: %1.2f dB", 20.f*log10f(vol+FLT_MIN));
Автор: papahabla
Размещён: 06.05.2013 07:20
14 плюса
Попробуй это:
MPMusicPlayerController *iPod = [MPMusicPlayerController iPodMusicPlayer];
float volumeLevel = iPod.volume;
Вам необходимо импортировать среду MediaPlayer.
Автор: borked Размещён: 19.09.2011 05:4113 плюса
Это прекрасно работает:
Float32 volume;
UInt32 dataSize = sizeof(Float32);
AudioSessionGetProperty (
kAudioSessionProperty_CurrentHardwareOutputVolume,
&dataSize,
&volume
);
Автор: ziguli
Размещён: 17.10.2011 09:01
12 плюса
Swift 3.1
let audioSession = AVAudioSession.sharedInstance()
var volume: Float?
do {
try audioSession.setActive(true)
volume = audioSession.outputVolume
} catch {
print("Error Setting Up Audio Session")
}
audioSession.setActive(true)
- важно
11 плюса
Для Swift 2 :
let volume = AVAudioSession.sharedInstance().outputVolume
print("Output volume: \(volume)")
Автор: Dasoga
Размещён: 17.03.2016 12:35
5 плюса
Вы можете использовать системный вид по умолчанию для системы и добавлять туда, где вам это нужно. В моем случае это потребовалось в моем собственном музыкальном проигрывателе. Это легко и без проблем. Просто добавьте вид, и все готово. Это объясняется в справочнике по классу Apple MPVolume .
mpVolumeViewParentView.backgroundColor = [UIColor clearColor];
MPVolumeView *myVolumeView =
[[MPVolumeView alloc] initWithFrame: mpVolumeViewParentView.bounds];
[mpVolumeViewParentView addSubview: myVolumeView];
[myVolumeView release];
Автор: Suraj Pathak
Размещён: 23.11.2012 02:26
1 плюс
Я подготовил класс со статическими методами, чтобы разобраться с объемом устройств ios. Позвольте мне поделиться с вами :)
import AVFoundation
class HeadPhoneDetectHelper {
class func isHeadPhoneConnected() -> Bool
{
do{
let audioSession = AVAudioSession.sharedInstance()
try audioSession.setActive(true)
let currentRoute = audioSession.currentRoute
let headPhonePortDescriptionArray = currentRoute.outputs.filter{$0.portType == AVAudioSessionPortHeadphones}
let isHeadPhoneConnected = headPhonePortDescriptionArray.count != 0
return isHeadPhoneConnected
}catch{
print("Error while checking head phone connection : \(error)")
}
return false
}
class func isVolumeLevelAppropriate() -> Bool
{
let minimumVolumeLevelToAccept = 100
let currentVolumeLevel = HeadPhoneDetectHelper.getVolumeLevelAsPercentage()
let isVolumeLevelAppropriate = currentVolumeLevel >= minimumVolumeLevelToAccept
return isVolumeLevelAppropriate
}
class func getVolumeLevelAsPercentage() -> Int
{
do{
let audioSession = AVAudioSession.sharedInstance()
try audioSession.setActive(true)
let audioVolume = audioSession.outputVolume
let audioVolumePercentage = audioVolume * 100
return Int(audioVolumePercentage)
}catch{
print("Error while getting volume level \(error)")
}
return 0
}
}
Автор: Suat KARAKUSOGLU
Размещён: 03.02.2016 02:25
1 плюс
Swift 2.2, обязательно импортируйте MediaPlayer
private func setupVolumeListener()
{
let frameView:CGRect = CGRectMake(0, 0, 0, 0)
let volumeView = MPVolumeView(frame: frameView)
//self.window?.addSubview(volumeView) //use in app delegate
self.view.addSubview(volumeView) //use in a view controller
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(volumeChanged(_:)), name: "AVSystemController_SystemVolumeDidChangeNotification", object: nil)
}//eom
func volumeChanged(notification:NSNotification)
{
let volume = notification.userInfo!["AVSystemController_AudioVolumeNotificationParameter"]
let category = notification.userInfo!["AVSystemController_AudioCategoryNotificationParameter"]
let reason = notification.userInfo!["AVSystemController_AudioVolumeChangeReasonNotificationParameter"]
print("volume: \(volume!)")
print("category: \(category!)")
print("reason: \(reason!)")
print("\n")
}//eom
Автор: LuAndre
Размещён: 27.05.2016 09:08
Вопросы из категории :
- ios Приложение для iPhone в ландшафтном режиме, системы 2008
- ios Как мне дать моим веб-сайтам значок для iPhone?
- ios Как программно отправить смс на айфон?
- ios Как я могу разработать для iPhone, используя машину для разработки Windows?
- objective-c Открытие нестандартного URL в приложении Какао
- objective-c Каков наилучший способ перетащить NSMutableArray?
- swift Как я могу программным образом определить, работает ли мое приложение в симуляторе iphone?
- swift iOS: Convert UTC NSDate to local Timezone
- swift Как установить цель и действие для UIBarButtonItem во время выполнения
- swift Жирный и не жирный текст в одном UILabel?
- audio Звук Питона («Колокол»)
- audio Как я могу воспроизвести звук на Java?
- audio Отключение звука Windows с помощью C #
- audio Как я могу сделать генератор розового шума?
- volume AVAudioPlayer затухание громкости
- volume Настройка громкости VLC из командной строки / bash
- volume Android: MediaPlayer setVolume function