পালস অডিওতে প্রোগ্রামের জন্য ডিভাইস সেট করবেন?


10

কম্পিউটারে আমার কাছে 2 টি সাউন্ড ডিভাইস রয়েছে।

আমি যখন কোনও প্রোগ্রাম চালিত করি (আসুন স্কাইপ বলি) আমি ("প্যাভুকন্ট্রোল" -> "পালস অডিও ভলিউম নিয়ন্ত্রণ" ব্যবহার করতে পারি) সেটআপ করতে পারি যাতে এই অ্যাপ্লিকেশনটি প্লেব্যাক বা রেকর্ডিংয়ের জন্য প্রদত্ত ডিভাইস ব্যবহার করবে use

তবে - প্লেব্যাক / রেকর্ডিং ট্যাবগুলিতে অ্যাপ্লিকেশনটি কেবলমাত্র কিছু বর্তমানে (প্লেব্যাক বা রেকর্ডিং) করা থাকলে তা দৃশ্যমান।

আমি প্রতি অ্যাপ্লিকেশনটিতে কীভাবে ডিভাইস সেট করতে পারি তবে অ্যাপ্লিকেশনটি রেকর্ডিং বা শব্দ বাজানো শুরু করার আগে?

উত্তর:


9

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

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

LANG=C pactl list | grep -A2 'Source #' | grep 'Name: ' | cut -d" " -f2

সেই তালিকায় সম্ভবত নিয়মিত উত্স এবং পালস অডিওর মনিটরের উত্স উভয়ের নাম অন্তর্ভুক্ত থাকবে (যা আমার সিস্টেমে নামটিতে "মনিটর" রয়েছে)। আপনি যে ডিভাইসটিকে লক্ষ্য করতে চান তার নিয়মিত উত্সের নামটি ব্যবহার করতে চাইবেন want

ডুবির নামগুলি পেতে আপনি একই জিনিসটি করতে পারেন:

LANG=C pactl list | grep -A2 'Sink #' | grep 'Name: ' | cut -d" " -f2

নামগুলি পেয়ে গেলে আপনি নিজের টার্মিনাল থেকে নিম্নলিখিত জাতীয় কিছু চালাতে পারেন:

PULSE_SINK=<sink_name> PULSE_SOURCE=<source_name> <command_to_run_skype>

অবশ্যই, আপনি যদি এটি কোনও মেনু থেকে চালাতে চান তবে আপনার সম্ভবত শেল স্ক্রিপ্ট তৈরি করতে হবে এবং এটি ডিফল্ট কমান্ডের পরিবর্তে ব্যবহার করতে হবে। এর মতো কিছু কাজ করা উচিত:

#!/bin/sh
set PULSE_SINK <sink_name>
set PULSE_SOURCE <source_name>
<command_to_run_skype>

অভ্যন্তরীণ নামগুলি সন্ধান করার জন্য সুন্দর ছোট্ট কমান্ডস সেট করুন!
ভিক্স

2

আপনার ভেরিয়েবলগুলি রপ্তানি এবং নির্ধারণ করতে হবে:

#! / বিন / SH 
PULSE_SINK = "সিঙ্ক_নাম" রফতানি করুন 
PULSE_SOURCE = "উত্স_নাম" রফতানি করুন 
command_to_run_skype

0

আমি একটি পার্ল মডিউল লিখেছিলাম যা এই পালস অডিও.পিএম করে

এটি আপনাকে এ জাতীয় সিনট্যাক্স ব্যবহার করার অনুমতি দেয়,

use PulseAudio;
use constant TRACKIN  => 'pci-0000:00:1d.7-usb-0:2.3:1.0'

my $pa = PulseAudio->new;

my $sink   = $pa->get_sink_by([qw/properties device.bus_path/] => TRACKIN );
my $source = $pa->get_source_by(
  [qw/properties device.bus_path/] => TRACKIN
  , [qw/properties device.profile.name/] => 'analog-stereo'
);
$pa->exec({
  sink      => $sink
  , source  => $source
  , prog    => '/usr/bin/audacity'
});

অবশ্যই, আপনি get_sink_byএবং যে কোনও মানদণ্ড ব্যবহার করতে পারেন get_source_by। এটা থেকে পড়া pacmd info। এটি আপনাকে নিজের পার্সিং করতে বাধ্য করার পরিবর্তে পার্ল লাইব্রেরি ব্যবহার না করে @ মোবার্লির উত্তরের একই ধারণাটিতে কাজ করে। এটি কিছু অন্যান্য নিফটি বৈশিষ্ট্যও সরবরাহ করে।

আমার পডকাস্ট অনুষ্ঠানের জন্য, আমি আসলে এটি স্কাইপও চালু করতে ব্যবহার করি ..

$pa->exec({
  sink      => $sink
  , source  => $source
  , prog    => '/usr/bin/skype'
  , args    => ['--callto','btrlistener021']
});

( btrlistener*স্কাইপের নামগুলি ব্লগটালক্রাদিওর জন্য)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.