আমি অ্যামিক্সারের সাহায্যে কীভাবে টোগল করব?


48

নাটি সহ আমি সর্বদা 'মাস্টার' শব্দ ভলিউমটি টগল করতে সক্ষম হয়েছি

amixer sset Master toggle

কমপিজ কনফিগ-ম্যানেজারে আমি একটি এজ বাইন্ডিংয়ের সাথে সংযুক্ত করেছি।

ওয়ানিরিক ইনস্টল করার পরে কমান্ডটি কেবলমাত্র শব্দকে নিঃশব্দ করে তবে এটি সশব্দ করে না। এমনকি আমি এটি টার্মিনালে চেষ্টা করেছিলাম কিন্তু এটি কাজ করে না। এটি ' মনো: প্লেব্যাক [68 [% 78%] [-১.2.২৫ ডিবি] [অফ] ' থেকে '... [চালু]' পরিবর্তন করে তবে শব্দটি নিঃশব্দ থাকে যাতে আমাকে এটিতে 'সাউন্ড-ইন্ডিকেটর'-এর মাধ্যমে সশব্দ করতে হবে প্যানেল।

আমি কীভাবে এটি আবার কাজ করতে পারি? ন্যাটি পরে কি পরিবর্তন হয়েছে? সাউন্ড ভলিউম টগল করার জন্য 'সাউন্ড-ইন্ডিকেটর' কমান্ডটি কি কেউ জানেন?


এবং এটিকে আরও আশ্চর্যজনক করে তোলার জন্য: আমার অন্যান্য ল্যাপটপে, যেখানে আমি একটি নতুন ইনস্টল না করে নাটি থেকে ওয়ানিরিকে আপগ্রেড করেছি, এটি এখনও কার্যকর।
joschi

উত্তর:


51

এটি 13.04-এ আমার জন্য নিঃশব্দ এবং সশব্দ উভয়ই কাজ করে:

amixer -D pulse set Master 1+ toggle

এটি সশব্দ করতে, সমস্ত কিছু সশব্দ করতে নিশ্চিত করার জন্য এটি পালস অডিও নির্দিষ্ট করে।


লুবুন্টু 13.10 এ কাজ করেছেন। সপ্তাহের জন্য এটি খুঁজছেন!
লুইসগনজালেজ

1
সম্পাদনা: টার্মিনালে কমান্ড হিসাবে চলার সময় এটি কাজ করে। তবে যখন আমি কী বাইন্ডিং হিসাবে কনফিগার করার চেষ্টা করি তখন আমি পাই: হোম ডিরেক্টরি অ্যাক্সেসযোগ্য নয়: অনুমতি ALSA lib pulse.c: 243: (পালস_কনেক্ট) পালস
অডিও

5
এটি 1+পরামিতি ছাড়াই আরও ভাল কাজ করে ।
জে কাটজউইনেল

3
এখনও 17.10 (শৈল্পিক) এ কাজ করে। আমি এটি আই 3 মিডিয়া বাইন্ডিংয়ের জন্য ব্যবহার করছি:bindsym XF86AudioMute exec --no-startup-id amixer -D pulse set Master 1+ toggle
জোয়েল


16

আমি এই স্ক্রিপ্টটি একটি কাজের হিসাবে ব্যবহার করছি:

#!/bin/bash

CURRENT_STATE=`amixer get Master | egrep 'Playback.*?\[o' | egrep -o '\[o.+\]'`

if [[ $CURRENT_STATE == '[on]' ]]; then
    amixer set Master mute
else
    amixer set Master unmute
    amixer set Front unmute
    amixer set Headphone unmute
fi

amixer scontentsকল করার আগে amixer set Master muteএবং কল করার আগে এবং জিএমআই ব্যবহার করে যা সশব্দ করা দরকার তা নির্ধারণ করার জন্য সমস্ত কিছু সশব্দ করার আগে আমি একটি ভিন্নতা করেছি।


  1. টাইপ সাউন্ড সহ amixer scontents > ~/before(আপনি সমস্ত শব্দ চ্যানেলের স্থিতির সাথে একটি ফাইল পাবেন)
  2. তারপরে ভলিউমটি টগল করুন amixer set Master toggle
  3. এর সাথে একটি দ্বিতীয় চ্যানেল স্থিতি ফাইল তৈরি করুন amixer scontents > ~/after
  4. amixer set Master toggleপ্রথম টগল কমান্ডের আগে ভলিউমটিকে আবার স্তরে ফিরিয়ে আনার কথা বলে আবার শব্দের টগল করুন
  5. এর সাথে একটি তৃতীয় ফাইল তৈরি করুন amixer scontents > ~/afterafter

এখন আপনার কাছে তিনটি ফাইল রয়েছে যা জানায় যেগুলি আপনাকে স্বাভাবিক শব্দগুলির জন্য ব্যবহৃত সাউন্ড চ্যানেলগুলির স্থিতি সম্পর্কে জানায়, যেগুলি নিঃশব্দ করা হয় amixer set Master toggleএবং যা আবার একই কমান্ডটি সরিয়ে না দিয়ে পুনরায় চালু হয় না।

সহজেই ফাইলগুলি তুলনা করতে এবং পার্থক্যগুলি দেখতে (যে চ্যানেলগুলি নিঃশব্দ হয়ে যায় এবং পরে নিঃশব্দ হবে না) আপনি meldসফ্টওয়্যার কেন্দ্র থেকে ব্যবহার করতে পারেন । এটি শুরু করুন, তিনটি ফাইল খুলুন এবং স্ক্রোলবারে আপনি দেখতে পাবেন যেখানে ফাইলগুলির মধ্যে পার্থক্য রয়েছে। উপরে বর্ণিত স্ক্রিপ্টে চ্যানেলের নামগুলি যুক্ত করতে তাদের ব্যবহার করুন।


দুর্ভাগ্যক্রমে স্ক্রিপ্টটি কেবল শব্দ
নিঃশব্দ

এটি সম্ভবত কারণ আপনার জিনিসগুলিকে নিঃশব্দ করা দরকার যা আমার সিস্টেমে যেমন "ফ্রন্ট" এবং "হেডফোন" বলা হয় না।
জিম হুনজিকার

আমি একটি ভিন্নতাও পেয়েছিলাম এবং আমার কম্পিউটারে স্ক্রিপ্টটির জন্য যা হারিয়েছিল তা খুঁজে পেয়েছি, এখন এটি কার্যকর হয়। অনেক ধন্যবাদ.
joschi

5

আমি সঠিকভাবে টগল করার জন্য শব্দ নিঃশব্দ পেতে পারি না। আমি সিআইএল ব্যবহার করেছি এবং অ্যামিক্সার এসেট মাস্টার টগল টাইপ করুক বা এইচপি প্যাভিলিয়ন মিডিয়া টগল কীটি হিট করুক, আমি একই ফল পেয়েছি: শব্দটি চালু থাকলে এবং কাজ করা থাকলে এটি স্বয়ংক্রিয়ভাবে মাস্টার চ্যানেল এবং পিসিএম চ্যানেলটি বন্ধ করে দেবে। তারপরে যখন আমি আবার টগলটি আঘাত করি (ক্লিপ বা কী) এটি সর্বদা মাস্টারকে সরিয়ে দেয় তবে পিসিএম নিঃশব্দ ছেড়ে দেয়। আমার ছদ্মবেশের জন্য (এইচপি প্যাভিলিয়ন ডিভি 6 চলমান জুবুন্টু অনেরিক) এর অর্থ, মাস্টার চালু থাকা সত্ত্বেও শব্দটি বন্ধ রয়েছে। যখন সিএলআই থেকে চালানো হয় - একই ফলাফল। যদি ক্লিমে, আমি পিসিএম টগল করি তবে এটি মাস্টার চ্যানেলটিও বন্ধ করে দেয় এবং আবার এটি আর চালু করবে না, যদিও এটি পিসিএমকে সঠিকভাবে টগল করে।

যে স্ক্রিপ্টটি কাজ করেছিল তা হ'ল:

#!/bin/bash
    if amixer -c 0 get Master | grep -q off
then
    amixer set Master unmute
    amixer set PCM unmute

else
    amixer set Master mute
fi

তারপরে আমি স্ক্রিপ্টটি ব্রাউজ করার জন্য আমি জুবুন্টু কী-বাইন্ডিংস (সেটিংস> সেটিংস ম্যানেজার> কীবোর্ড> অ্যাপ্লিকেশন শর্টকাটস) ব্যবহার করেছি (আমি এটিকে sndfx.sh বলেছি এবং এটি থুনারে ডান ক্লিক করে নির্বাহযোগ্য হিসাবে সেট করেছি এবং নির্ধারিত অনুমতি অনুসারে নির্বাহযোগ্য করতে সক্ষম)। তারপরে আমি সেই কীটি টেপ করে এটিকে এইচপি প্যাভিলিয়নের কুইককিটি নির্ধারণ করেছি। এখন, এটি সঠিকভাবে টগল করে - দুর্দান্ত। আশাকরি ইহা অন্য কারো সাহায্য করবে।

শান্তি


2

যদি আমি ভুল না হয়ে থাকি তবে এটি একটি বাগ যা অন্য মিশ্রক চ্যানেলগুলিকে নিঃশব্দ এবং সশব্দ করতে দেয়। নিঃশব্দ করার জন্য, চেষ্টা করুন

অ্যামিক্সার সেট মাস্টার 0;

সশব্দ করার চেষ্টা করুন

অ্যামিক্সার সেট মাস্টার 1% +; অ্যামিক্সার সেট মাস্টার 7 ডিবি +;


এই কমান্ডগুলি কাজ করে, তবে তারা আমাকে একটি একক কমান্ডের সাথে ভলিউমটি টগল করতে দেয় না যা আমি প্রান্তের বাইন্ডিংয়ের সাথে একত্রিত করতে পারি।
joschi

1
সম্পর্কিত বাগ রিপোর্টে কারও আগ্রহী থাকলে এখানে দেখুন
জোশি

2

এই স্ক্রিপ্ট খণ্ড চেষ্টা করুন ... এটি কাজ করে

https://wiki.archlinux.org/index.php/PulseAudio#volume_control


আমি নিশ্চিত করি যে এটি আমার সেটআপে কাজ করে, আপনি কি এটি প্রয়োগের পদক্ষেপগুলি লিখতে পারেন, বর্তমান আকারে এটি অন্যান্য ব্যবহারকারীর পক্ষে খুব বেশি ব্যবহার নয়।
মাতিও

1

আপনার রিমোটেকট্রোলের সাথে লিরকের সাথে কাজ করার জন্য আপনি যদি অলিমারটিকে .lircrc এ প্রতিস্থাপন করতে চান তবে আপনি নিম্নলিখিত রেখাগুলি চেষ্টা করতে পারেন। এক্সম্যাক্রো ইনস্টল করা আছে তা নিশ্চিত হন। ভলিউম-নিয়ন্ত্রণ এখন আবার কাজ করে।

begin
        prog = irexec
        button = KEY_VOLUMEUP
        repeat = 1
        delay = 2
        config = echo KeyStrPress XF86AudioRaiseVolume KeyStrRelease XF86AudioRaiseVolume | xmacroplay $DISPLAY
end
begin
        prog = irexec
        button = KEY_VOLUMEDOWN
        repeat = 1
        delay = 2
        config = echo KeyStrPress XF86AudioLowerVolume KeyStrRelease XF86AudioLowerVolume | xmacroplay $DISPLAY
end
begin
        prog = irexec
        button = KEY_MUTE
        config = echo KeyStrPress XF86AudioMute KeyStrRelease XF86AudioMute | xmacroplay $DISPLAY
end

0

কৌশলটি হ'ল স্পিকার বা হেডফোন রাজ্যটি যদি আপনার হেডফোনগুলি প্লাগ ইন করে থাকে বা না থাকে তার উপর নির্ভর করে মাস্টার চ্যানেলের অবস্থার অনুসরণ করে। এই স্ক্রিপ্টটি আমার প্রাচীন ডেল অক্ষাংশের ল্যাপটপে এটি করেছে:

#!/bin/bash

amixer -q sset Master toggle

MASTER_STATE=`amixer get Master | awk -F"dB] " 'NR == 5 {print $2;}'`
HEADPHONES_PLUGGED=`amixer contents | grep -A 2 Headphone\ Jack | awk -F"=" 'NR == 3 {print $2;}'`

if [[ $HEADPHONES_PLUGGED == 'on' ]]; then
    SLAVE="Headphone"
else
    SLAVE="Speaker+LO"
fi

if [[ $MASTER_STATE == '[on]' ]]; then
    amixer -q sset $SLAVE unmute
else
    amixer -q sset $SLAVE mute
fi

আপনার কম্পিউটারে অ্যামিক্সারের সাহায্যে আপনার চ্যানেলগুলি পরীক্ষা করতে হবে এবং সে অনুযায়ী স্ল্যাভ সংজ্ঞা পরিবর্তন করতে হবে। এছাড়াও "হেডফোন _P জ্যাক" গ্রেপ স্ট্রিংয়ের HEADPHONES_PLUGGED সংজ্ঞায় অন্য কিছু হতে পারে।


-1

নিষ্ঠুর শক্তি নিরবচ্ছিন্ন:

for i in $(amixer |grep -o \'.*\'); do amixer set $i unmute; done

2
আমি মনে করি না 80 এবং আরও বেশি ডিভাইস সশব্দ করা ভাল ধারণা। এর মধ্যে মাইক্রোফোন রয়েছে, যা অবাঞ্ছিত প্রতিক্রিয়া লুপের দিকে নিয়ে যেতে পারে। একটি না for i in $(amixer |grep -o \'.*\'); do echo amixer set $i unmute; doneতা দেখতে সম্পন্ন করা হবে আগে।
ব্যবহারকারী অজানা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.