俺已经不止一次建议大家用 4K 电视机当编程的显示器了。
4K 电视机即便宜份量又足。别搞什么 23寸,24寸还是27寸。如果经济条件允许, 8K 的 65 寸彩色电视机更好。
4K电视机有 PC模式。
微软的 WIRELESS DISPLAY ADAPTER 大约 50 刀, 可以把 WINDOWS 的内容投屏。
绝大部分反对电视机当显示器的人,不知道电视机一般有个遥控器, 可以调节背光、GAMMA值、亮度、对比度以及色彩饱和度等等。 他们不知道和音量一样,背光、亮度、对比度以及色彩饱和度等等参数是可以调节的。
对了, 他们还忘记了什么是相似三角形。
绝大部分喜欢双显示器但是反对电视机当显示器的人,忘记 4K/8K 电视机相当于两个双屏显示,而且是无边框的。
还有些人抱着上世纪 CRT 电视机年代的成见,认为电视机“伤眼睛”, 其实 LCD 电视机没有 X 光, 谈不上辐射。 这种说法不值一哂, 全世界那些追剧的人民群众和打电玩的百姓恐怕以后就不用活了。
俺每天用4K电视机上知乎,都 4 年了。
海信H9G是一款功能全面的电视,整体性能令人印象深刻。与前代产品海信H9F相比,它的升级令人惊喜。它拥有出色的对比度,全阵列局部调光功能帮助电视显示极深的黑色,而且它的黑色均匀度令人难以置信。HDR内容看起来也很棒,因为它的亮度足以让高光弹出。遗憾的是,它的可视角度很窄,这是VA面板电视的预期,即使它有一个120Hz面板,它也不能正确显示120Hz信号。它的开箱颜色精度也很一般,所以你可能必须让它校准才能充分享受它。即使它不支持任何可变刷新率(VRR)技术,但游戏玩家应该欣赏这款电视极快的响应时间和真正的低输入滞后。最后,它在明亮的房间里表现非常好,因为它的亮度足以对抗眩光,并且具有出色的反射处理能力。
最好的TCL电视是TCL 6系列/R635 2020 QLED。它比2019年的TCL 6系列/R625 2019有了很好的改进,它与更高端、更昂贵的型号竞争。它的量子点技术使它能够为HDR内容显示非常宽的色域,并且它的亮度足以真正带来HDR中的高光。它非常适合游戏,因为它支持可变刷新率(VRR),低输入滞后和快速响应时间。它的VA面板提供了深邃的黑色,本地调光功能进一步加深了它们。尽管如此,它的整体表现并不好,在明亮的物体周围有明显的绽放。遗憾的是,与任何VA面板电视一样,它的可视角度很窄,TCL尚未实现三星Q80T QLED或索尼X950H上的广视角技术。幸运的是,它可以消除任何来源的抖动,插值运动高达120fps,并能很好地提升低分辨率内容。总而言之,这是最好的TCL电视。
////////////////////////////////////////////////////////////////////////////////////////////
一般人买电脑是为了满足自个的需求, 而需求一般也是可以预料的。很多人以为装 )x( 不是种需求, 俺是不同意的。比如,俺有 1 台 256 GB 内存的电脑, 就是为了类似装 )x( 目的剁的手。
一般人抖机灵抖出来的电脑是单位的/阿爷的, 俺抖机灵抖出来的电脑是自己的,这就是俺的不同。
//////////////////////////////////////////////////////////////////////////////////////////////////////
俺近几年才开始学编程,用的就是东芝4K电视机。俺把自己的一个小工具的源码放在这里自证清白。
//////////////////////////////////////////////////////////////////////////////////////////////////////////
一个免费的录制CD音质的录音软件,不妨拿去用就是。
做好的软件, 可以在这里下载:
https:// wenxue.ca/wp-content/up loads/2020/08/laomaiREC_Portable.zip
Portable_MD5__730e831f1c4fba866fd732e40d1cfd3d
https://wenxue.ca/wp-content/uploads/2020/08/laomaiREC_Portable.zip
俺把它当留言钟, 教孩子学中文和英文的工具。只是不喜欢系统自带的录音机,既臃肿, 音质又差。
Windows XP x86 版本
https:// wenxue.ca/wp-content/up loads/2020/08/VoiceREC01__portable_x86.zip
https://wenxue.ca/wp-content/uploads/2020/08/VoiceREC01__portable_x86.zip
C# 怎么用几行代码做一个录制CD音质的录音机 How to make a CD quality audio recorder in C# with just a few lines ?
代码亲测可用, 放心复制粘贴。如果您很不喜欢学编程,那就直接拿去用就是了。
授权是 WTFPL。
using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using System.IO; using System.Media; //using System.Windows.Media; namespace easyREC { public partial class Form1 : Form { private System.Media.SoundPlayer myPlayer = new SoundPlayer(); [DllImport("winmm.dll", EntryPoint = "mciSendString", CharSet = CharSet.Auto)] public static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, IntPtr HwndCallback); string ps_SoundLocation = Directory.GetCurrentDirectory(); [DllImport("winmm.dll", EntryPoint = "PlaySound")] public static extern int PlaySound(string lpxzName, int hModul, int dwFlags); public Form1() { InitializeComponent(); } private void buttonREC_Click(object sender, EventArgs e) { int lu_errcode; int lu_cch = 0; richTextBox1.Text = ""; mciSendString("stop WaveDump" + "", "", 0, IntPtr.Zero); string lsb_ret = ""; richTextBox1.Text += "
" + lsb_ret + "
"; timer1.Enabled = true; buttonPLAY.Visible = false; buttonSTOP.Visible = true; buttonSTOP.Enabled = true; string ls_mciRetV = ""; Global.gdt_begin = DateTime.Now; try { mciSendString("open new type waveaudio alias WaveDump", ls_mciRetV, 0, IntPtr.Zero); // 切换不同的采样参数 mciSendString("set WaveDump time format ms bitspersample 16 channels 1 samplespersec 44100 bytespersec 88200 alignment 2", ls_mciRetV, 0, IntPtr.Zero); //Working Great lu_errcode = mciSendString("record WaveDump", ls_mciRetV, 0, IntPtr.Zero); this.Text = "Recording..." + ls_mciRetV; if (lu_errcode != 0) { richTextBox1.Text += "
" + lsb_ret + "
"; } else { richTextBox1.Text += "
" + lu_errcode.ToString() + " error(s).
"; } } catch (Exception ex) { MessageBox.Show(ex.Message, "WTF, not my fault, Man..."); } buttonREC.BackColor = System.Drawing.Color.Pink; // "red"; buttonSTOP.BackColor = SystemColors.Control; } private void buttonSTOP_Click(object sender, EventArgs e) { buttonREC.BackColor = SystemColors.Control; buttonREC.Enabled = false; int lu_errcode; int lu_cch = 0; string lsb_ret = ""; try { lu_errcode = mciSendString("pause WaveDump", "", 0, IntPtr.Zero); this.Text = "Stopped."; richTextBox1.Text += "
" + lsb_ret + "
"; } catch (Exception ex) { MessageBox.Show(ex.Message, "BLAHHH..."); } Global.gdt_end = DateTime.Now; buttonSTOP.BackColor = System.Drawing.Color.Gray; // "red"; string timestamp = "_" + Global.gdt_begin.ToString().Replace(" ", "_").Replace(":", "t").Replace("/", "-") + "_till_" + Global.gdt_end.ToString().Replace(":", "t").Replace("/", "-").Replace(" ", "_") + "_.wav"; ps_SoundLocation = Directory.GetCurrentDirectory() + "\" + timestamp; mciSendString("save WaveDump " + ps_SoundLocation, "", 0, IntPtr.Zero); mciSendString("close WaveDump", "", 0, IntPtr.Zero); richTextBox1.Text += "
"+ ps_SoundLocation + " <-- Paste the PATH by CTRL-V."; this.Text = "Saved to " + ps_SoundLocation + " <-- The Path "; Global.gdt_begin = DateTime.Now; // next episode buttonREC.Enabled = true; buttonSTOP.Enabled = false; buttonPLAY.Visible = true; buttonPLAY.Enabled = true; Clipboard.SetText(ps_SoundLocation); } private void buttonPLAY_Click(object sender, EventArgs e) { int lu_errcode = 1; string lsb_ret = ""; int lu_cch = 0; try { mciSendString("stop" + "", "", 0, IntPtr.Zero); } catch (Exception ex) { MessageBox.Show(ex.Message, "Trying to play, but ...."); } if (ps_SoundLocation == Directory.GetCurrentDirectory() | ps_SoundLocation == "" | ps_SoundLocation.Length > 120) { OpenFileDialog open = new OpenFileDialog(); open.Filter = "Wave|*.wav"; if (open.ShowDialog() == DialogResult.OK) { ps_SoundLocation = open.FileName; } PlaySound(ps_SoundLocation, 0, 0x1); } else { try { buttonPLAY.BackColor = System.Drawing.Color.Green; lu_errcode = mciSendString("play " + ps_SoundLocation, "", 0, IntPtr.Zero); this.Text = "Playing: " + ps_SoundLocation ; if (lu_errcode != 0) { richTextBox1.Text += "
" + lsb_ret + " " + lu_cch.ToString() + " char(s). " + "
"; } else { richTextBox1.Text += "
" + lu_errcode.ToString() + " error(s)." + " " + lu_cch.ToString() + " char(s). " + "
"; richTextBox1.Text += "
" + "Playing: " + ps_SoundLocation; } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error !!! ...."); } } buttonPLAY.BackColor = SystemColors.Control; buttonREC.BackColor = SystemColors.Control; buttonSTOP.BackColor = SystemColors.Control; } private void timer1_Tick(object sender, EventArgs e) { this.Text = "Message Left in the textbox! " + " Time is: " + DateTime.Now.ToString() + "." + DateTime.Now.Millisecond.ToString(); } private void Form1_Load(object sender, EventArgs e) { buttonPLAY.Visible = false; buttonSTOP.Visible = false; } private void Form1_FormClosed(object sender, FormClosedEventArgs e) { timer1.Enabled = false; } public static class Global { public static string gs_clipurl = null; public static string gs_clippath = "c:\"; // C:*******inDebug ////DateTime.Now public static DateTime gdt_begin = DateTime.Now; public static DateTime gdt_end = DateTime.Now; } } } }
/////////////////////////////////////////////////////////////////////////////////////////////
话痨答主的其他低赞回答: