4K显示器现在已经烂大街了,随便搜一下,Dell的27寸1080p便宜货是1350,Acer的28寸4K是1509块。
3090目前要近两万五千人民币,你能买得起3090掏不起150块人民币的差价上4K?
所以我劝你不要盗图发帖装比了。还3090?啧啧啧
俺已经不止一次建议大家用 4K 电视机当显示器了。
*** 图中这个 10000 块钱的耳机前面的电视机就是 东芝 4K 电视机
4K 电视机做显示器即便宜份量又足。别搞什么23寸, 24寸还是27寸。
如果经济条件允许, 8K 的 65 寸彩色电视机更好。
不管是股市行情还是超宽报表 (DATA WINDOW), 一个屏幕就可以看完。
4K电视机有 PC模式。
PS3PS4PS5 能接电视机。
Xbox 360、S/X 也能接电视机。
NINTENDO SWITCH 也都能接电视机。
绝大部分反对电视机当显示器的人,不知道电视机一般有个遥控器, 可以调节GAMMA值、亮度、对比度以及色彩饱和度等等。 他们不知道和音量一样,亮度、对比度以及色彩饱和度等等参数是可以调节的。
绝大部分喜欢双显示器但是反对电视机当显示器的人,忘记 4K/8K 电视机相当于两个双屏显示,而且是无边框的。
还有些人抱着上世纪 CRT 电视机年代的成见,认为电视机“伤眼睛”, 其实 LCD 电视机没有 X 光, 谈不上辐射。 这种说法不值一哂,这如果能站得住脚的话,全世界那些追剧的人民群众和打电玩的百姓恐怕以后就不要活了。
俺每天4K电视机上知乎, 都几年了。
海信H9G(系列)是功能全面的电视,整体性能令人印象深刻。
与前代产品海信H9F相比,它的升级令人惊喜。它拥有出色的对比度,全阵列局部调光功能帮助电视显示极深的黑色,而且它的黑色均匀度令人难以置信。HDR内容看起来也很棒,因为它的亮度足以让高光弹出。遗憾的是,它的可视角度很窄,这是VA面板电视的预期,即使它有一个120Hz面板,它也不能正确显示120Hz信号。它的开箱颜色精度也很一般,所以你可能必须让它校准才能充分享受它。即使它不支持任何可变刷新率(VRR)技术,但游戏玩家应该欣赏这款电视极快的响应时间和真正的低输入滞后。最后,它在明亮的房间里表现非常好,因为它的亮度足以对抗眩光,并且具有出色的反射处理能力。
TCL
最好的TCL电视是TCL 6系列/R635 2020 QLED。它比2019年的TCL 6系列/R625 2019有了很好的改进,它与更高端、更昂贵的型号竞争。它的量子点技术使它能够为HDR内容显示非常宽的色域,并且它的亮度足以真正带来HDR中的高光。它非常适合游戏,因为它支持可变刷新率(VRR),低输入滞后和快速响应时间。它的VA面板提供了深邃的黑色,本地调光功能进一步加深了它们。尽管如此,它的整体表现并不好,在明亮的物体周围有明显的绽放。遗憾的是,与任何VA面板电视一样,它的可视角度很窄,TCL尚未实现三星Q80T QLED或索尼X950H上的广视角技术。幸运的是,它可以消除任何来源的抖动,插值运动高达120fps,并能很好地提升低分辨率内容。总而言之,这是最好的TCL电视。
TCL 5系列是游戏的好帮手。它的输入延时非常低,响应速度快,还有黑框插入功能,有助于减少运动模糊。遗憾的是,它被限制在60Hz的刷新率上,而且不支持任何VRR技术。由于其卓越的对比度和良好的黑色均匀性,它非常适合暗室游戏,但它的亮度并不高,所以它并不是在明亮房间中游戏的最佳选择。TCL 5系2020是TCL 2020产品线中的一款中端电视,相比于前代产品TCL 5系/S525 2019有了不错的提升。TCL S535是一款QLED电视,对于HDR内容来说,它能显示出出色的广色域,但在HDR中亮度不够,无法带来真正的HDR体验。它的VA面板具有卓越的对比度,因此在黑暗中观看时能显示出深邃的黑色。它有一个全阵列局部调光功能,可以提高一点对比度,整体表现相当不错。遗憾的是,它的可视角度较窄,所以从侧面观看时很快就会失去图像精度。与TCL 6系列/R635 2020 QLED不同,它不支持可变刷新率(VRR),并且被限制在60Hz面板上,但它有很好的响应时间和难以置信的低输入延时。虽然它有不错的反射处理,但它的亮度不足以对抗眩光。好的一面是,它可以消除任何来源的24p抖动,这对于60Hz电视来说是罕见的。
索尼A8H OLED是一款出色的OLED电视,但它比LG CX OLED更贵,性能也不尽如人意。TCL 5系列/S535 2020 QLED提供不错的HDR体验,但不支持VRR。Vizio Quantum X 2020比Quantum 2020更亮,但对于游戏来说,它不值得。
索尼X950H的亮度比X900H高了很多,但游戏性能没有那么好。
海信H9G是最好的HDR电视之一,但色彩准确度比X900H差,且不支持任何VRR。
Vizio OLED 2020提供了和LG CX差不多的画质,但在支持VRR方面有太多的BUG。
TCL 6系列/R635 2020 QLED非常适合HDR游戏,但成本比Vizio M7高。
####################################################################
###################################################################
这个 50 年高龄的耳机, 很少用。因为俺玻璃心, 害怕别人因为俺的耳机不够贵而歧视俺, 所以常备一些耳机来装门面。
这个手电筒一样的东西,1000 美元一个。 俺有三个。
这个收藏了 10 多年了。
这个俺收藏有半打, 原来有一打的。
这个耳机当年是 3000 多人民币, 现在剪草的时候用来降噪。
这是 2007~2008 年左右买的 mm50
这个 30~40 块, 用了几个月。 现在放着吃灰。
一般来说, 不晒一下自己的器材就很没面子。
耳机是最难伺候的, 俺为耳机买了自带 100A 陈年老铜线的房子来调音。花了大概 300 万人民币, 好在自带的100A 陈年老铜线涨了,涨到 400 多万人民币了。
因为怕 HD800 太寒酸, 又买了 HD800S.
为了玩好它, 俺开始折腾超导体。
这个耳机俺也有的, 只不过不在手上。
** 这些图都是 P 出来的, 都是 P 出来的
这个 1977 年的平板耳机, 是朋友扔给俺的, 据说也值 10000 人民币。 俺觉得朋友在吹牛, 但是俺找不到证据。
/////////////////////////////////////////////////////////////////////////////////////////////////
俺说自己玩一下编程, 恐怕也有人质疑。
那俺只好贴一下证据证明自己有在玩电脑。
/////////////////////////////////////////////////////////////////////////////////////////////
WINDOWS 下,命令行录音的 C++源代码。
亲测可用。
实验步骤和注意事项:
// ConCAP00.cpp : Defines the entry point for the console application. // WTFPL #include "stdafx.h" #include <CommDlg.h> #include <PrSht.h> #include <MMSystem.h> #include <fstream> #include <cstdlib> #include <iostream> //#include "resource.h" #define NSEC 15; using namespace std; HWAVEIN hWaveIn; WAVEHDR WaveInHdr; MMRESULT result; WAVEFORMATEX pFormat; void CheckMMIOError(DWORD code); void SaveWaveFile(); void main() { //Declare local varibles int samplesperchan; int sampleRate; int *waveIn; cout << "*********************************************
"; cout << "Configuring the Sound Hardware:
"; cout << "*********************************************
"; cout << "Enter 65536 in the 1st blank and 44100 in the second if you have no idea what to input.
"; cout << "Enter the number of Samples/Channel:
"; cin >> samplesperchan; cout << "Enter the Sampling Rate:
"; cin >> sampleRate; pFormat.wFormatTag = WAVE_FORMAT_PCM; // simple, uncompressed format pFormat.nChannels = 1; // 1=mono, 2=stereo pFormat.nSamplesPerSec = sampleRate; // 44100 pFormat.wBitsPerSample = 16; // 16 for high quality, 8 for telephone-grade pFormat.nBlockAlign = pFormat.nChannels*pFormat.wBitsPerSample/8; pFormat.nAvgBytesPerSec = pFormat.nChannels*pFormat.wBitsPerSample/8; pFormat.cbSize=0; result = waveInOpen(&hWaveIn, WAVE_MAPPER,&pFormat, 0L, 0L, WAVE_FORMAT_DIRECT); if (result) { char fault[256]; waveInGetErrorText(result, fault, 256); MessageBoxW(NULL,L"Failed to open waveform input device.",NULL,NULL); return; } int nSec = NSEC; waveIn = new int[sampleRate*nSec]; WaveInHdr.lpData = (LPSTR)waveIn; WaveInHdr.dwBufferLength = sampleRate*nSec*pFormat.nBlockAlign; WaveInHdr.dwBytesRecorded=0; WaveInHdr.dwUser = 0L; WaveInHdr.dwFlags = 0L; WaveInHdr.dwLoops = 0L; waveInPrepareHeader(hWaveIn, &WaveInHdr, sizeof(WAVEHDR)); result = waveInAddBuffer(hWaveIn, &WaveInHdr, sizeof(WAVEHDR)); if (result) { MessageBoxW(NULL,L"Failed to read block from device",NULL,NULL); return; } result = waveInStart(hWaveIn); if (result) { MessageBoxW(NULL,L"Failed to start recording",NULL,NULL); return; } cout << "Start Recording...........
"; cout << "Note: in 15 seconds the application will end by itself.
"; do { } while (waveInUnprepareHeader(hWaveIn, &WaveInHdr, sizeof(WAVEHDR))== WAVERR_STILLPLAYING); SaveWaveFile(); waveInStop(hWaveIn); cout << "Stop Recording.
"; waveInClose(hWaveIn); if(!waveIn) delete [] waveIn; } void SaveWaveFile() { MMCKINFO ChunkInfo; MMCKINFO FormatChunkInfo; MMCKINFO DataChunkInfo; HMMIO handle = mmioOpen( "test.wav", 0, MMIO_CREATE | MMIO_WRITE); if (!handle) { MessageBox(0, "Error creating file.", "Error Message", 0); return; } memset(&ChunkInfo, 0, sizeof(MMCKINFO)); ChunkInfo.fccType = mmioStringToFOURCC("WAVE", 0); DWORD Res = mmioCreateChunk( handle, &ChunkInfo, MMIO_CREATERIFF); CheckMMIOError(Res); FormatChunkInfo.ckid = mmioStringToFOURCC("fmt ", 0); FormatChunkInfo.cksize = sizeof(WAVEFORMATEX); Res = mmioCreateChunk(handle, &FormatChunkInfo, 0); CheckMMIOError(Res); // Write the wave format data. mmioWrite(handle, (char*)&pFormat, sizeof(pFormat)); Res = mmioAscend(handle, &FormatChunkInfo, 0); CheckMMIOError(Res); DataChunkInfo.ckid = mmioStringToFOURCC("data", 0); DWORD DataSize = WaveInHdr.dwBytesRecorded; DataChunkInfo.cksize = DataSize; Res = mmioCreateChunk(handle, &DataChunkInfo, 0); CheckMMIOError(Res); mmioWrite(handle, (char*)WaveInHdr.lpData, DataSize); // Ascend out of the data chunk. mmioAscend(handle, &DataChunkInfo, 0); // Ascend out of the RIFF chunk (the main chunk). Failure to do // this will result in a file that is unreadable by Windows95 // Sound Recorder. mmioAscend(handle, &ChunkInfo, 0); mmioClose(handle, 0); } void CheckMMIOError(DWORD code) { if (code == 0) return; char buff[256]; wsprintf(buff, "MMIO Error. Error Code: %d", code); MessageBox(NULL,buff, "MMIO Error", 0); } // THE END. YOU ARE WELCOME.
这个例子是真的吧?
*** 里面那个绿色的玩意,其实比 RTX3090 还要贵。
不信?
您也弄一个来拍个视频。
//////////////////////////////////////////////////////////////////////////////////////////////////
// 俺近几年才开始学编程,用的就是东芝4K电视机。俺把自己的一个小工具的源码放在这里
// 自证清白。
//////////////////////////////////////////////////////////////////////////////////////////////////////////
一个免费的录制CD音质的录音软件,万一喜欢不妨拿去用就是。
***备注:授权方式是 WTFPL
做好的软件, 可以在这里下载:
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; } } } }
/////////////////////////////////////////////////////////////////////////////////////////////
话痨答主的其他低赞回答:
“老麦, 你平时听什么歌?”
“被爱情遗忘的角落。 角落之歌”
“看来咱有代沟。”
“OBVIOUSLY!”
俺知道, 俺说了您也不会相信。
俺真的有台电脑, 内存 256GB.