а реально ли написать такую штуковину: при вытаскивании штекера наушников - плеер ставится на паузу?
Вот, кое-что набросал по быстрому. Сделано через костыль (AAL, подглядел в исходниках SDL for MAGX от Ant-ON`а), т.к. более изящным методом (MMPlayer::stop()) у меня не получилось. Но вроде работает, то что нужно выполняет, а именно стандартный плеер, при вытаскивании наушников, ставится на паузу, при втыкании - продолжает играть. Тестил на ЕМ30.
Но и багов может быть куча, а именно полное отключение звука, при отключенных наушниках, в следствии чего невозможно будет нормально отвечать на звонки... И батарею скорее всего жрать будет.
Исходник:
int main(int argc, char **argv){
memset(&config, 0, sizeof(AAL_PARAM));
config.d2 = 0x4080803;
config.d1 = 3;
config.chanel = 1;
config.vol = 0;
config.freq = 8000;
config.bps = 2;
int id;
int y = 0;
while(1){
if (UTIL_GetHeadsetStatus() == 0){
if (y == 0){
id = AAL_open( &config );
AAL_sync(id);
AAL_in_call_capture(id);
y = 1;
}
} else {
if (y == 1){
AAL_sync(id);
AAL_in_call_capture(id);
AAL_close(id);
y = 0;
}
}
AAL_sync(id);
AAL_in_call_capture(id);
usleep(100);
}
return 0;
}
[close]
Запускать можно, написав скрипт:
headset_on.sh
#!/bin/sh
mypath=${0%/*}
cd $mypath
./headset
Выключать скорее всего так:
headset_off.sh
#!/bin/sh
kill `pidof headset`