{ "version": "https://jsonfeed.org/version/1", "title": "\u89c6\u9891\u6280\u672f", "description": "\u5173\u4e8e\u89c6\u9891\u5236\u4f5c\uff0c\u8f6c\u7801\uff0c\u76f4\u64ad\u7684\u6280\u672f\u8ba8\u8bba", "home_page_url": "go/video", "feed_url": "feed/video.json", "icon": "https://cdn.v2ex.com/navatar/285e/19f2/503_large.png?m=1589320132", "favicon": "https://cdn.v2ex.com/navatar/285e/19f2/503_normal.png?m=1589320132", "items": [ { "author": { "url": "member/jiangbingo", "name": "jiangbingo", "avatar": "https://cdn.v2ex.com/avatar/b389/12d1/169412_large.png?m=1770276536" }, "url": "t/1190958", "title": "\u6c42\u52a9\u89c6\u9891 AI \u7f16\u8f91", "id": "t/1190958", "date_published": "2026-02-05T07:32:04+00:00", "content_html": "

\u76ee\u524d\u90fd\u662f\u6587\u751f\u56fe\u6216\u8005\u56fe\u751f\u89c6\u9891\uff0c\u6709\u6ca1\u6709\u76f4\u63a5\u5bf9\u89c6\u9891\u8fdb\u884c\u4eba\u7269\u66ff\u6362\u7684 AI \u5de5\u5177\uff1f

\n

https://imgur.com/a/Sjpri3f

\n" }, { "author": { "url": "member/Kelly00", "name": "Kelly00", "avatar": "https://cdn.v2ex.com/avatar/8673/5719/763053_large.png?m=1771843520" }, "url": "t/1172843", "date_modified": "2025-11-14T08:24:08+00:00", "content_html": "

\u6700\u8fd1\u8fd9\u6bb5\u65f6\u95f4\u56e0\u4e3a\u5728\u7814\u7a76\u77ed\u89c6\u9891\u8425\u9500\uff0c\u987a\u4fbf\u4e5f\u53bb\u8bd5\u4e86\u4e0d\u5c11 AI \u89c6\u9891\u751f\u6210\u5de5\u5177\uff0c\u53d1\u73b0\u4e00\u4e2a\u5f88\u6709\u610f\u601d\u7684\u73b0\u8c61\uff1a\n\u7edd\u5927\u591a\u6570\u89c6\u9891\u6a21\u578b\u7684\u201c\u80fd\u529b\u201d\u5176\u5b9e\u4e0d\u9519\uff0c\u4f46\u771f\u6b63\u80fd\u7528\u4e8e\u5546\u4e1a\u6216\u8005\u7535\u5546\u573a\u666f\u7684\uff0c\u53cd\u800c\u975e\u5e38\u5c11\u3002

\n

\u539f\u56e0\u5927\u6982\u6709\u51e0\u4e2a\uff1a\n1.\u751f\u6210\u65f6\u95f4\u592a\u957f\uff0c\u968f\u4fbf\u4e00\u6b21\u5c31\u662f 2 \uff5e 5 \u5206\u949f\u3002\n2.\u53ea\u80fd\u505a 2 \uff5e 3 \u79d2\u7684\u5355\u955c\u5934\uff0c\u6ca1\u529e\u6cd5\u505a\u6545\u4e8b\u3002\n3.\u6709\u6c34\u5370\u4e0d\u80fd\u5546\u7528\u3002\n4.\u5f88\u591a\u5730\u533a\u76f4\u63a5\u6253\u4e0d\u5f00\uff0c\u8981\u7b49\u9080\u8bf7\u7801\u3002\n5.\u7535\u5546\u76f8\u5173\u7684\u201c\u4ea7\u54c1\u624b\u6301\u3001\u5c55\u793a\u3001\u751f\u6d3b\u573a\u666f\u201d\u6a21\u578b\u4e0d\u592a\u7a33\u5b9a\u3002

\n

\u6211\u548c\u51e0\u4e2a\u505a TikTok Shop \u7684\u670b\u53cb\u804a\u4e4b\u540e\uff0c\u4ed6\u4eec\u6700\u5934\u75bc\u7684\u5176\u5b9e\u4e0d\u662f\u201c\u6a21\u578b\u6548\u679c\u591a\u597d\u201d\uff0c\u800c\u662f\uff1a\u6709\u6ca1\u6709 \u5e72\u51c0\u3001\u53ef\u76f4\u63a5\u7528 \u7684\u89c6\u9891\uff1f\u80fd\u4e0d\u80fd\u4e00\u952e\u751f\u6210 20 \u79d2\u4ee5\u4e0a\uff1f\u4ea7\u54c1\u80fd\u4e0d\u80fd\u5728\u4e0d\u540c\u955c\u5934\u91cc\u4fdd\u6301\u4e00\u81f4\uff1f\u6709\u6ca1\u6709\u7b80\u5355\u7684\u201c\u4ea7\u54c1\u5c55\u793a\u6a21\u677f\u201d\uff1f\u7ed3\u679c\u8fd9\u7c7b\u9700\u6c42\u53cd\u800c\u662f\u73b0\u6709\u5de5\u5177\u6700\u8584\u5f31\u7684\u5730\u65b9\u3002\u56e0\u4e3a\u597d\u5947\uff0c\u6211\u5c31\u5c1d\u8bd5\u81ea\u5df1\u5199\u4e86\u4e00\u4e2a demo \uff0c\u60f3\u770b\u770b\u80fd\u4e0d\u80fd\u505a\u51fa\u4e00\u4e2a\u81f3\u5c11\u80fd\u7528\u7684\u7248\u672c\uff1a\n1.\u5355\u955c\u5934 10 \u79d2\u89c6\u9891\n2.\u7b80\u5355\u7684\u591a\u955c\u5934\uff08 25 \u79d2\uff09 storyboard\n3.\u56fe\u751f\u89c6\u9891\uff1a\u628a\u5546\u54c1\u56fe\u8f6c\u6210\u4e00\u4e2a\u751f\u6d3b\u7c7b\u77ed\u7247\n4.\u5c3d\u91cf\u4e0d\u8ba9\u4eba\u7269\u3001\u4ea7\u54c1\u5728\u4e0d\u540c\u955c\u5934\u53d8\u6765\u53d8\u53bb

\n

\u671f\u95f4\u8e29\u4e86\u5f88\u591a\u5751\uff0c\u5305\u62ec\uff1a\n1.prompt \u62c6\u5e27\u4f1a\u4e71\u8dd1\n2.\u955c\u5934\u5207\u6362\u4f1a\u6296\n3.\u4eba\u7269\u80a4\u8272\u3001\u8863\u670d\u4e00\u81f4\u6027\u96be\u63a7\u5236\n4.\u6a21\u677f\u96be\u8bbe\u8ba1\uff08\u7535\u5546\u573a\u666f\u6bd4\u60f3\u8c61\u4e2d\u590d\u6742\uff09\n5.\u6a21\u578b\u6311 prompt \uff0c\u5f88\u201c\u6311\u98df\u201d\n\u4e0d\u8fc7\u6298\u817e\u4e0b\u6765\u4e4b\u540e\uff0c\u81f3\u5c11\u80fd\u8dd1\u8d77\u6765\u4e86\u3002\u6211\u628a\u5b83\u653e\u5728 Saro2.ai \u8fd9\u4e2a\u57df\u540d\u4e0a\uff0c\u7b97\u662f\u4e00\u4e2a\u534a\u5b9e\u9a8c\u6027\u8d28\u7684\u5c0f\u5de5\u5177\u3002\u4e0d\u662f\u5f00\u6e90\u7684\uff0c\u9700\u8981\u767b\u5f55\uff08\u4e3a\u4e86\u9632\u6ee5\u7528 + \u63a7\u5236\u7b97\u529b\uff09\uff0c\u4e0d\u8fc7\u5df2\u7ecf\u80fd\u7528\u3002

\n

\u5206\u4eab\u51e0\u4e2a\u8ba9\u6211\u89c9\u5f97\u201cAI \u89c6\u9891\u6bd4\u60f3\u8c61\u4e2d\u66f4\u96be\u201d\u7684\u70b9

\n
    \n
  1. \u89c6\u9891\u6700\u96be\u7684\u662f\u201c\u7a33\u5b9a\u201d\uff0c\u4e0d\u662f\u753b\u8d28\n\u753b\u8d28\u73b0\u5728\u7684\u6a21\u578b\u90fd\u4e0d\u5dee\uff0c\u4f46\u7a33\u5b9a\u6027\u624d\u51b3\u5b9a\u80fd\u4e0d\u80fd\u7528\u6765\u5356\u8d27\u3002
  2. \n
  3. \u591a\u955c\u5934\u6bd4\u5355\u955c\u5934\u96be\u4e00\u4e2a\u6b21\u5143\n\u56e0\u4e3a\u955c\u5934\u4e4b\u95f4\u7684\u201c\u8fde\u8d2f\u201d\u5b8c\u5168\u662f pipeline \u505a\u51fa\u6765\u7684\uff0c\u800c\u4e0d\u662f\u6a21\u578b\u61c2\u7684\u3002
  4. \n
  5. prompt \u5de5\u7a0b\u771f\u7684\u975e\u5e38\u7384\u5b66\n\u5b57\u591a\u4e86\u4e0d\u884c\uff0c\u5b57\u5c11\u4e86\u4e5f\u4e0d\u884c\uff0c\u6709\u65f6\u5019\u975e\u5e38\u597d\u7684\u6548\u679c\u53ea\u662f\u968f\u673a\u79cd\u5b50\u5e78\u8fd0\u3002
  6. \n
  7. \u505a\u5546\u5bb6\u89c6\u9891\u6bd4\u505a\u521b\u610f\u89c6\u9891\u96be\u592a\u591a
  8. \n
\n

\u56e0\u4e3a\u5fc5\u987b\u8981\uff1a\u771f\u5b9e\u3001\u4e0d\u8df3\u5e27\u3001\u4e0d\u53d8\u5f62\u3001\u4ea7\u54c1\u4e0d\u80fd\u4e71\u6539\u3001\u4e0d\u80fd\u4e71\u52a0\u5947\u602a\u4e1c\u897f\u3001\u6a21\u578b\u5f88\u5bb9\u6613\u201c\u53d1\u6325\u521b\u9020\u529b\u201d\uff0c\u4f46\u5546\u5bb6\u8981\u7684\u662f\u201c\u4e0d\u8981\u53d1\u6325\u201d\u3002\u6211\u89c9\u5f97 AI \u89c6\u9891\u8fd9\u4e2a\u65b9\u5411\u4f1a\u8d8a\u6765\u8d8a\u201c\u5de5\u5177\u5316 / \u573a\u666f\u5316\u201d\uff0c\u771f\u6b63\u597d\u7528\u7684\u5de5\u5177\u672a\u5fc5\u662f\u6700\u5f3a\u6a21\u578b\uff0c\u800c\u662f\u6700\u61c2\u5546\u4e1a\u4f7f\u7528\u573a\u666f\u7684\u3002

\n

\u6709\u5728\u505a TikTok Shop \u3001Shopify \u5546\u54c1\u89c6\u9891\u3001UGC \u3001AI \u751f\u6210\u89c6\u9891\u3001\u89c6\u9891\u5de5\u5177\u63d2\u4ef6\u3001\u6b22\u8fce\u7559\u8a00\u4ea4\u6d41\u4e0b\u7ecf\u9a8c\u3002

\n

\u5982\u679c\u60f3\u770b\u770b\u6211\u4e0a\u9762\u8bf4\u7684\u90a3\u4e2a demo \uff0c\u8fd9\u91cc\uff1aSaro2.ai \uff08\u4e00\u4e2a\u6211\u81ea\u5df1\u505a\u7684\u5c0f\u7684\u5b9e\u9a8c\u7ad9\uff09

\n", "date_published": "2025-11-14T08:22:04+00:00", "title": "Update \u6700\u8fd1\u6298\u817e AI \u89c6\u9891\u751f\u6210\u7684\u4e00\u4e9b\u5fc3\u5f97\uff08\u987a\u4fbf\u5206\u4eab\u4e0b\u6211\u505a\u7684\u5c0f\u5de5\u5177\uff09", "id": "t/1172843" }, { "author": { "url": "member/chenY520", "name": "chenY520", "avatar": "https://cdn.v2ex.com/gravatar/8307147fe242bb32f4eb5129e61f2888?s=73&d=retro" }, "url": "t/1170778", "title": "\u5173\u4e8e\u56fe\u7247\u751f\u6210\u89c6\u9891\uff1a wan2.2-s2v \u6a21\u578b\u63d0\u793a\u8bcd\u9650\u5236\u65e0\u6548\u95ee\u9898", "id": "t/1170778", "date_published": "2025-11-05T10:27:14+00:00", "content_html": "

\u4f7f\u7528 wan2.2-s2v \u6a21\u578b\u751f\u6210\u89c6\u9891\uff0c\u9700\u8981\u751f\u6210\u4ec5\u4ec5\u7728\u773c\u7684\u89c6\u9891\uff0c\u9664\u6b64\u4e4b\u5916\uff0c\u4e0d\u9700\u8981\u5176\u4ed6\u7684\u4efb\u4f55\u52a8\u4f5c\uff0c\u4f46\u662f\u5b58\u5728\u5f88\u5927\u6982\u7387\u751f\u6210\u7684\u89c6\u9891\u662f\u9759\u6b62\u7684\u89c6\u9891\u3002\u8bf7\u95ee\u8fd9\u4e2a\u6709\u4eba\u505a\u8fc7\u5417\uff1f\u6709\u4ec0\u4e48\u5f88\u597d\u7684\u89e3\u51b3\u65b9\u5f0f\u5417

\n" }, { "author": { "url": "member/hubianluanma", "name": "hubianluanma", "avatar": "https://cdn.v2ex.com/avatar/3a2f/2db0/736843_large.png?m=1750909443" }, "url": "t/1164779", "date_modified": "2025-10-13T08:36:25+00:00", "content_html": "

\u5f53\u4f7f\u7528 Mac \u81ea\u5e26\u7684\u5f55\u5c4f\u5de5\u5177\u5f55\u5236\u540e\u9ed8\u8ba4\u662f mov \u683c\u5f0f\u7684\u89c6\u9891\uff0c\u4f53\u79ef\u4e5f\u662f\u6bd4\u8f83\u5927\u7684\uff0c\u5927\u5bb6\u5e73\u65f6\u662f\u901a\u8fc7\u4ec0\u4e48\u65b9\u5f0f\u538b\u7f29\u7684\uff0c\u5982\u679c\u4f7f\u7528 FFmpeg \u7684\u8bdd\u5927\u5bb6\u662f\u4f7f\u7528 GUI \u5de5\u5177\u5c45\u591a\uff1f\u8fd8\u662f\u4f7f\u7528\u7ec8\u7aef\u547d\u4ee4\u7684\u65b9\u5f0f\u8fdb\u884c\u538b\u7f29\u8f6c\u5316\u3002\n\u6211\u76ee\u524d\u662f\u6bcf\u6b21\u4f7f\u7528 FFmpeg \u547d\u4ee4\u6216\u8005\u4f7f\u7528\u7b2c\u4e09\u65b9\u7684\u526a\u8f91\u8f6f\u4ef6\u8fdb\u884c\u8f6c\u5316\uff0c\u4e0d\u8fc7\u5bf9 FFmpeg \u547d\u4ee4\u4e0d\u662f\u5f88\u719f\uff0c\u6bcf\u6b21\u90fd\u662f\u73b0\u67e5\uff0c\u5927\u5bb6\u53ef\u4ee5\u5206\u4eab\u4e00\u4e0b\u81ea\u5df1\u7684\u65b9\u5f0f\u3002

\n", "date_published": "2025-10-13T03:23:49+00:00", "title": "[\u8ba8\u8bba] \u5927\u5bb6\u662f\u5982\u4f55\u538b\u7f29 MOV \u89c6\u9891\u7684", "id": "t/1164779" }, { "author": { "url": "member/kingsnakerrrrr", "name": "kingsnakerrrrr", "avatar": "https://cdn.v2ex.com/gravatar/a9eaad45b6936ba37d0ca95af4c1e064?s=73&d=retro" }, "url": "t/1155031", "date_modified": "2025-08-26T06:41:03+00:00", "content_html": "

\u5f00\u670d\u5f88\u591a\u90fd\u7528\u56e2\u961f\u76d8\uff0c\u4e0d\u77e5\u9053\u4ed6\u4eec\u600e\u4e48\u4f18\u5316\u3002\u5e93\u6bd4\u8f83\u591a\u9700\u8981\u4f18\u5316\u7f13\u5b58\uff0c\u52a0\u8f7d\u901f\u5ea6\u4ec0\u4e48\u7684\u3002\u4e0d\u61c2\u641e

\n", "date_published": "2025-08-26T06:39:40+00:00", "title": "\u6c42\u4e00\u4e2a\u6700\u5b8c\u7f8e\u7684 vps \u6302\u8f7d\u56e2\u961f\u76d8\u6700\u4f18\u65b9\u6848\uff0c\u4f8b\u5982 rclone \u6302\u8f7d\u53c2\u6570\u3002", "id": "t/1155031" }, { "author": { "url": "member/xmz8888", "name": "xmz8888", "avatar": "https://cdn.v2ex.com/gravatar/ed04456429a19898c36de0a890aa763b?s=73&d=retro" }, "url": "t/1149413", "date_modified": "2025-08-02T00:25:17+00:00", "content_html": "

1.PC \u7aef\u901a\u8fc7\u6cb9\u7ba1\u89c6\u9891\u7684\u89e3\u6790\u7f51\u7ad9\u4e0b\u8f7d\u5230\u6700\u9ad8\u5206\u8fa8\u7387\u7684 VP9 \u89c6\u9891\u6587\u4ef6+\u97f3\u9891\u6587\u4ef6\uff0c\u7136\u540e\u81ea\u5df1\u624b\u52a8\u5c01\u88c5\u4e00\u4e0b\u53d8\u6210 MKV\n\uff08\u4e0d\u8fc7\u5982\u679c\u9009\u62e9\u53bb\u4f7f\u7528\u5b89\u5353\u624b\u673a\u7aef\u7684\u67d0 f \u5e94\u7528\u5546\u5e97\u7684\u90a3\u4e2a\u67d0 S \u89e3\u6790\u4e0b\u8f7d app \u5012\u662f\u529f\u80fd\u9f50\u5168\uff0c\u53ef\u4ee5\u540c\u65f6\u5305\u529e\u8f6c\u7801\u548c\u5c01\u88c5\uff09

\n

2.(\u672c\u4eba\u5bf9\u89c6\u9891\u7f16\u7801\u5e76\u65e0\u6df1\u5165\u7814\u7a76\uff0c\u6b22\u8fce\u63d0\u4f9b\u8bbe\u7f6e\u5efa\u8bae)\nPC \u7aef\u4f7f\u7528\u7684\u97e9\u56fd\u5f00\u53d1\u8005\u90a3\u4e2a\u7b80\u6613\u7684\u67d0 S \u7f16\u7801\u5c01\u88c5\u8f6c\u6362\u8f6f\u4ef6\uff0c\u8bbe\u7f6e\u5982\u4e0b\uff1a\n\u6863\u6848\u683c\u5f0f MP4 \u5e26\u65f6\u95f4\u6233\uff0c\u7f16\u7801 h264 \u7528 cpu \u538b\u5236\uff1b\u91cf\u5316\u5668 23 \uff0c\u8bbe\u5b9a\u6863\u9009\u62e9\u4e86 main \uff0cauto + \u5feb\u901f\u89e3\u7801\uff0c\u901f\u5ea6\u9009\u62e9\u4e86\u201c\u975e\u5e38\u5feb\u201d\uff1b\u97f3\u9891\u7f16\u7801 HE-AAC \u76f4\u63a5\u9009\u62e9\u6700\u9ad8 kbps \uff0c\u58f0\u9053\u53d6\u6837\u7387\u4fdd\u6301\u4e0d\u53d8\u4e0e\u6e90\u6587\u4ef6\u76f8\u540c\uff1b\u89c6\u9891\u7684\u5206\u8fa8\u7387\u53ca\u5e27\u7387\u901a\u5e38\u4f1a\u9009\u62e9\u4fdd\u6301\u4e0d\u53d8\u4e0e\u6e90\u6587\u4ef6\u76f8\u540c\u3002\n\u6211\u4e2a\u4eba\u901a\u5e38\u4f1a\u9009\u62e9\u628a\u89c6\u9891\u7684\u6574\u4f53\u901f\u5ea6\u53d8\u66f4\u4e3a 2 \u500d\u901f\uff0c\u89c6\u9891\u7684\u65f6\u957f\u76f4\u63a5\u7f29\u77ed\u4e86\u4e00\u534a\uff0c\u800c\u4e14\u8fd9\u6837\u4ee5\u540e\u8c01\u4e5f\u4e0d\u7528\u53bb\u624b\u52a8\u8c03\u6574 2 \u500d\u901f\u4e86\u3002

\n

3.\u4ee5\u4e0a\u8bbe\u7f6e\u7684\u6548\u679c\uff1a\u4f8b\u5982\u539f\u672c 20 \u5206\u949f\u7684\u89c6\u9891\uff0c\u4e8c\u500d\u901f\u5c31\u662f 10 \u5206\u949f\u300220 \u5206\u949f 700 \u591a MB \u7684 4K \u89c6\u9891\u538b\u5236\u51fa\u6765\u53d8\u4e3a\u4e86 10 \u5206\u949f 300 \u591a MB \u7684\u6587\u4ef6\u4f53\u79ef\u3002\n\u53ea\u8981\u4e0d\u662f\u591a\u5e74\u524d\u7684\u65e7 cpu \uff0c\u538b\u5236\u7528\u65f6\u5e94\u8be5\u4e00\u822c\u662f 5 \u5206\u949f\u5de6\u53f3\u3002\u5b8c\u5168\u4e0d\u803d\u8bef\u7528\u7535\u8111\uff0c\u53bb\u559d\u53e3\u6c34\u4e0a\u4e2a\u5395\u6240\u5c31\u538b\u5236\u5b8c\u4e86\u3002

\n

4.\u6700\u540e\u9009\u62e9\u4ee5\u89c6\u9891\u7684\u5f62\u5f0f\u4e0a\u4f20\u5230\u81ea\u5df1\u7684\u7535\u62a5\u9891\u9053\u3002\n\u4e0a\u8ff0\u4e3e\u4f8b\u7684 300 \u591a MB \u7684\u89c6\u9891\u5728\u684c\u9762\u7aef\u4e0a\u4f20\u5e76\u6ca1\u6709\u88ab\u7535\u62a5\u670d\u52a1\u5668\u81ea\u52a8\u518d\u6b21\u538b\u5236\uff0c\u6587\u4ef6\u4f53\u79ef\u6ca1\u6709\u53d8\uff0c\u7ecf\u6d4b\u8bd5\u5728\u5b89\u5353\u7aef\u4e0e\u82f9\u679c\u7aef\u5728\u7ebf\u64ad\u653e\u5747\u6b63\u5e38\u3002\n\uff08\u5c0a\u8d35\u7684\u7535\u62a5\u4f1a\u5458\u53ef\u4ee5\u4eab\u53d7\u66f4\u5feb\u7684\u4e0a\u4f20\u901f\u5ea6\uff0c\u540c\u65f6\u4f7f\u7528\u7f51\u9875\u7aef\u8981\u6bd4\u4f7f\u7528\u684c\u9762\u7aef\u7684\u4e0a\u4f20\u901f\u5ea6\u66f4\u5feb\uff0c\u4e0d\u8fc7\u53ea\u6709\u51e0\u767e MB \u7684\u6587\u4ef6\u672c\u6765\u4e00\u4f1a\u5c31\u4e0a\u4f20\u5b8c\u4e86\u4e5f\u65e0\u6240\u8c13\u4e86\uff09

\n", "date_published": "2025-08-02T00:18:56+00:00", "title": "\u5173\u4e8e\u7528\u7535\u62a5\u5f53\u4f5c\u6d41\u5a92\u4f53\u89c6\u9891\u5907\u4efd\u5e93\uff0c\u53ef\u4ee5\u5728\u7ebf\u64ad\u653e\u4e0e\u5206\u4eab\u7684\u65b9\u6848\uff0c\u4ee5\u53ca\u89c6\u9891\u538b\u5236\u7684\u6d41\u7a0b", "id": "t/1149413" }, { "author": { "url": "member/chuhaitian", "name": "chuhaitian", "avatar": "https://cdn.v2ex.com/avatar/e8b9/52ad/723997_large.png?m=1748325547" }, "url": "t/1142225", "title": "\u7528 google \u7684 veo 3 \u751f\u6210\u5e26\u58f0\u97f3\u7684 ai \u89c6\u9891\u5927\u51e0\u5200\uff1f", "id": "t/1142225", "date_published": "2025-07-01T05:11:20+00:00", "content_html": "

\u53bb\u4e00\u4e2a\u5927\u7ad9\u8bd5\u4e86\u4e0b\u7528 veo 3 \u751f\u6210\u5e26\u58f0\u97f3\u7684\u89c6\u9891\uff0c\u7c97\u7565\u4f30\u7b97\u4e86\u4e0b\uff0c\u9700\u8981 8-10 \u5200\u7684\u6837\u5b50....

\n

\u8fd9\u4e2a\u6210\u672c\u8fd8\u771f\u4e0d\u5982\u53bb\u95f2\u9c7c\u8fd9\u4e2a\u4eba\u6765\u5e2e\u5fd9\u51fa\u89c6\u9891

\n

\u670b\u53cb\u63a8\u8350\u4e86\u4e2a\u6709\u610f\u601d\u7684\u7f51\u7ad9\uff08 https://v03ai.com \uff09\uff0c\u5f88\u4fbf\u5b9c\u53ea\u8981 0.5 \u5200\u5c31\u80fd\u51fa\u4e00\u4e2a veo 3 \u89c6\u9891

\n

\u4e0d\u77e5\u9053\u4ed6\u4eec\u771f\u662f\u9001\u798f\u5229\u8fd8\u662f\u8bf4\u6709\u4ec0\u4e48\u7279\u6b8a\u6280\u672f\u624b\u6bb5\u505a\u5230\u8fd9\u4e48\u4f4e\u6210\u672c\u7684\u3002

\n" }, { "author": { "url": "member/zzzain46", "name": "zzzain46", "avatar": "https://cdn.v2ex.com/avatar/4a8e/5197/428907_large.png?m=1637842690" }, "url": "t/1135881", "title": "DJI Action \u88ab\u81ea\u52a8\u5206\u6bb5\u7684\u89c6\u9891\u5982\u4f55\u65e0\u75d5\u62fc\u63a5", "id": "t/1135881", "date_published": "2025-06-02T13:13:23+00:00", "content_html": "\u5982\u9898\uff0c\u56e0\u4e3a\u5b58\u50a8\u7684\u539f\u56e0\uff0c\u4f8b\u5982\u5f55\u5236\u7684 1 \u5c0f\u65f6\u89c6\u9891\uff0c\u4f1a\u88ab\u81ea\u52a8\u5207\u5206\u6210 10 \u51e0\u5206\u949f\u4e00\u6bb5\u7684\u89c6\u9891\uff0c\u9677\u5728\u9700\u8981\u5c06\u8fd9\u4e9b\u539f\u672c\u8fde\u7eed\u7684\u89c6\u9891\u62fc\u63a5\u8d77\u6765\uff0c\u5982\u679c\u5728 DJI mino \u91cc\u76f4\u63a5\u62fc\u63a5\u7684\u8bdd\uff0c\u62fc\u63a5\u5904\u4f1a\u6709\u6709\u96f6\u70b9\u51e0\u79d2\u7684\u91cd\u590d\u753b\u9762\uff0c\u5bfc\u81f4\u65e0\u6cd5\u5b8c\u7f8e\u62fc\u63a5\uff0c\u8bf7\u95ee\u6709\u4ec0\u4e48\u7b80\u5355\u7684\u65b9\u6cd5\u5417" }, { "author": { "url": "member/wnpllrzodiac", "name": "wnpllrzodiac", "avatar": "https://cdn.v2ex.com/gravatar/84e41a23f65477d2c3c398dc13c8e053?s=73&d=retro" }, "url": "t/1123992", "date_modified": "2025-04-09T04:01:07+00:00", "content_html": "

\u5982\u9898\uff0c\u5176\u4ed6\u529f\u80fd\u90fd\u5f88\u597d\uff0c\u6709\u5927\u91cf\u514d\u8d39\u7684\u7d20\u6750\u548c\u5de5\u5177\u3002\n\u4f46\u662f\u667a\u80fd\u62a0\u89c6\u9891\u80cc\u666f\u529f\u80fd\u9700\u8981 vip \uff0c\u6709\u70b9\u5c34\u5c2c\u3002\u6709\u4ec0\u4e48\u529e\u6cd5\u7528\u5176\u4ed6\u8f6f\u4ef6\u751f\u6210\u6263\u9664\u80cc\u666f\u7684\u89c6\u9891\uff0c\u5bfc\u5165\u526a\u6620\u91cc\u9762\u7528\u5417\uff1f\n\u97f3\u89c6\u9891\u5f00\u53d1\u591a\u5e74\uff0c\u611f\u89c9\u524d\u540e\u666f\u5206\u79bb\u7684\u89c6\u9891\u6ca1\u6709\u884c\u4e1a\u89c4\u8303\u3002\u6240\u4ee5\u662f\u5728\u975e\u7ebf\u7f16\u8f6f\u4ef6\u91cc\u9762 \u9010\u5e27\u64cd\u4f5c\u7684\uff1f\n\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u8fd9\u6837\u7684\u89c6\u9891\u4ea4\u6362\u683c\u5f0f\uff0c\u7528\u6765\u5728\u4e0d\u540c\u8f6f\u4ef6\u95f4\u4f20\u8f93\u3002

\n", "date_published": "2025-04-08T08:24:10+00:00", "title": "\u6709\u5e73\u66ff \u526a\u6620 app \u667a\u80fd\u6263\u89c6\u9891\u80cc\u666f \u529f\u80fd\u5417\uff1f", "id": "t/1123992" }, { "author": { "url": "member/huazhaozhe", "name": "huazhaozhe", "avatar": "https://cdn.v2ex.com/gravatar/8f15eb6bc058e767a3673bd330522f55?s=73&d=retro" }, "url": "t/1123633", "date_modified": "2025-04-07T03:09:52+00:00", "content_html": "\u76d1\u63a7\u89c6\u9891\u6bd4\u8f83\u957f\u4f53\u79ef\u6bd4\u8f83\u5927\u8017\u8d39\u5b58\u50a8\u7a7a\u95f4\uff0c\u4e5f\u4e0d\u9700\u8981\u5b58\u50a8\u8fde\u8d2f\u7684\u89c6\u9891\uff0c\u58f0\u97f3\u5360\u7528\u4f53\u79ef\u6bd4\u8f83\u5c0f\u53ef\u4ee5\u4fdd\u7559\u3002\u51c6\u5907\u7528\u7c7b\u4f3c\u7f29\u65f6\u89c6\u9891\u7684\u65b9\u5f0f\u51cf\u5c11\u4f53\u79ef\u3002
\u7528 FFmpeg \u6309\u7167 1 \u79d2\u62bd 2 \u5e27\u53d8\u6210 2fps \u7684\u89c6\u9891\u65f6\u957f\u548c\u539f\u89c6\u9891\u65f6\u957f\u4e00\u6837\u58f0\u97f3\u4e5f\u6b63\u5e38\uff0c\u4f53\u79ef\u786e\u5b9e\u51cf\u5c11\u4e86\u4e0d\u5c11\u4f46\u8fd8\u4e0d\u591f\uff0c\u6211\u8bd5\u7740\u5c06\u62bd\u5230\u7684\u5e27\u91cd\u65b0\u8f93\u51fa\u4e3a 60fps \u7684\u89c6\u9891\uff0c\u603b\u5e27\u6570\u4e0d\u53d8\u65f6\u957f\u81ea\u7136\u5927\u5927\u7f29\u77ed\u5c31\u50cf\u500d\u901f\u64ad\u653e\u4e00\u6837\uff0c\u4f53\u79ef\u8fd8\u80fd\u51cf\u5c11\u4e00\u534a\u591a\u4f46\u662f\u58f0\u97f3\u4e0d\u6b63\u5e38\u4e86\u3002
\u6709\u6ca1\u5f97\u529e\u6cd5\u5728\u603b\u5e27\u6570\u5dee\u4e0d\u591a\u60c5\u51b5\u4e0b\uff0c\u4e0d\u8003\u8651\u64ad\u653e\u662f\u5426\u8fde\u8d2f\u54ea\u6015\u50cf PPT \u4e00\u6837\u90fd\u884c\uff0c\u4f4e\u5e27\u7387 2fps \u60c5\u51b5\u4e0b\u548c 60fps \u4e00\u6837\u4f53\u79ef\u5927\u5c0f\u5462\uff0c\u8fd9\u6837\u5b50\u89c6\u9891\u65f6\u957f\u4e0d\u53d8\u58f0\u97f3\u4e5f\u6b63\u5e38\uff0c\u95ee\u4e86 deepseek \u8c8c\u4f3c\u548c IPB \u5e27\u6ca1\u641e\u51fa\u6765\u3002", "date_published": "2025-04-07T01:57:48+00:00", "title": "\u76d1\u63a7\u89c6\u9891\u538b\u7f29/\u62bd\u5e27\u538b\u7f29\u5b58\u50a8\u4f18\u5316", "id": "t/1123633" }, { "author": { "url": "member/ilook", "name": "ilook", "avatar": "https://cdn.v2ex.com/gravatar/63b19bfeaee3be2a79d3416183b02530?s=73&d=retro" }, "url": "t/1118614", "title": "\u6709\u4ec0\u4e48\u89c6\u9891\u6263\u50cf\u7684\u8f6f\u4ef6\u53ef\u4ee5\u63a8\u8350", "id": "t/1118614", "date_published": "2025-03-15T03:58:40+00:00", "content_html": "

\u5e0c\u671b\u628a\u89c6\u9891\u91cc\u7684\u4e3b\u4f53\u6263\u51fa\u6765\uff0c\u5176\u4ed6\u90e8\u5206\u53ef\u4ee5\u7528\u7eff\u8272\u586b\u5145\uff0c\u4f5c\u4e3a\u4e00\u4e2a\u65b0\u7684\u89c6\u9891\u3002\u6700\u597d\u662f\u672c\u5730\u53ef\u4ee5\u8fd0\u884c\u7684\u670d\u52a1\u6216\u8f6f\u4ef6

\n" }, { "author": { "url": "member/Haku", "name": "Haku", "avatar": "https://cdn.v2ex.com/avatar/f178/a1b8/133660_large.png?m=1770122472" }, "url": "t/1118171", "title": "\u5e27\u8f6c\u89c6\u9891\u6709\u54ea\u4e9b\u6700\u5feb\u7684\u65b9\u6848\uff1f", "id": "t/1118171", "date_published": "2025-03-13T07:32:50+00:00", "content_html": "

\u7a0b\u5e8f\u4e0a\uff0c\u662f\u7ed9\u51fa\u4e00\u4e9b\u52a8\u753b\u5e27\uff0c\u5c06\u5b83\u4eec\u5408\u6210\u4e3a\u89c6\u9891\uff0c\u5e76\u914d\u4e0a\u8bed\u97f3\u3002\n\u4f8b\u5982\u8bed\u97f3 5s \uff0c\u52a8\u753b\u5e27 10 \u5e27\uff0c\u90a3\u4e48\u5c31\u662f\u6bcf\u5e27\u6301\u7eed 0.5s \uff0c\u7528 10 \u5e27\u6269\u5145\u4e3a 5s \u7684\u89c6\u9891\u5e76\u52a0\u4e0a\u97f3\u8f68\u3002\u540c\u65f6\u53ef\u80fd\u4f1a\u6709\u4e00\u4e9b\u753b\u4e2d\u753b\u7684\u9700\u6c42\u3002

\n

\u76ee\u524d\u5728 Python \u4e0a\u4f7f\u7528 moviepy \u6765\u505a\uff0c\u5408\u6210\u4e00\u6bb5 50s \u7684\u89c6\u9891+\u914d\u97f3\uff0c\u5982\u679c\u6ca1\u6709\u753b\u4e2d\u753b\u5927\u7ea6 120s \u5de6\u53f3\uff08\u5168\u7a0b\u753b\u4e2d\u753b\u5927\u6982\u7ffb\u500d\uff09\uff0c\u5982\u679c\u52a8\u753b\u5e27\u591a\u4e9b\u53ef\u80fd 150s \u7684\u6837\u5b50\u3002\n\u4f46\u662f\u9886\u5bfc\u4e0d\u6ee1\u610f\uff0c\u60f3\u8981\u628a\u8fd9\u4e2a\u65f6\u95f4\u538b\u7f29\u4e0b\u6765\uff0c\u7528\u4ed6\u7684\u8bdd\u8bf4\u6700\u597d\u5341\u51e0\u79d2\u5c31\u5408\u6210\u5b8c\u6bd5\u3002\u672c\u4eba\u6ca1\u548b\u505a\u8fc7\u89c6\u9891\u7f16\u89e3\u7801\u7684\u6d3b\uff0c\u6765\u95ee\u95ee V2EX \u7684\u8001\u54e5\u4eec\u8fd8\u6709\u5565\u63d0\u901f\u65b9\u6848\u3002

\n

\u67e5\u4e86\u4e0b moviepy \u5e95\u5c42\u7528\u7684\u662f ffmpeg \uff0c\u8c8c\u4f3c\u8fd9\u4e2a\u5df2\u7ecf\u662f\u5f88\u9ad8\u6548\u7684\u89c6\u9891\u7f16\u89e3\u7801\u6280\u672f\u4e86\u3002\n\u4f7f\u7528\u7684\u673a\u5668\u6ca1\u6709\u4e13\u4e1a\u663e\u5361\u5361\uff0c\u4f46\u662f\u53ef\u4ee5\u7533\u8bf7\u5230 AI \u5361\u6bd4\u5982 T4 \uff0c\u4e0d\u77e5\u9053\u80fd\u4e0d\u80fd\u52a0\u901f\u70b9\u3002

\n" }, { "author": { "url": "member/dcsuibian", "name": "dcsuibian", "avatar": "https://cdn.v2ex.com/gravatar/c29cba0b0706786011c11a5db6cb8b97?s=73&d=retro" }, "url": "t/1116887", "date_modified": "2025-03-09T08:53:52+00:00", "content_html": "

\u786c\u76d8\u7a7a\u95f4\u5feb\u4e0d\u591f\u4e86\uff0c\u5728\u8003\u8651\u964d\u4f4e\u4e00\u4e0b\u65b0\u5f55\u89c6\u9891\u7684\u7801\u7387\u3002

\n

\u76ee\u524d YouTube \u5bf9 4K 60p HDR \u7684\u5efa\u8bae\u4e0a\u4f20\u7801\u7387\u662f 66-85Mbps \uff0c\u4f46\u662f\u662f\u9488\u5bf9 H264 \u7684\u3002\u6211\u5e0c\u671b\u89c6\u9891\u7684\u753b\u8d28\u4e0d\u8981\u964d\u4f4e\u5230\u8fd9\u4e2a\u6807\u51c6\u4ee5\u4e0b\u3002

\n

\u5df2\u7ecf\u95ee\u8fc7 AI \u4e86\uff0c\u8bf4\u662f AV1 45Mbps \uff0cH265 54Mbps \uff0c\u4f46\u662f\u8fd9\u79cd\u5c5e\u4e8e\u7ecf\u9a8c\u503c\u5427\uff0c\u8fd8\u662f\u60f3\u542c\u542c\u4e13\u5bb6\u7684\u610f\u89c1\u3002\u53e6\u5916 AV1 \u6709\u5565\u5751\u5417\uff1f

\n", "date_published": "2025-03-08T07:15:12+00:00", "title": "AV1 \u548c H265 \u9700\u8981\u591a\u5927\u7801\u7387\u624d\u80fd\u8fbe\u5230 90Mbps \u7684 H264 \u6c34\u5e73\uff1f\u53ef\u4ee5\u7b80\u5355\u6362\u7b97\u5417\uff1f", "id": "t/1116887" }, { "author": { "url": "member/ariera", "name": "ariera", "avatar": "https://cdn.v2ex.com/avatar/0011/bf4f/559621_large.png?m=1663249020" }, "url": "t/1109074", "title": "\u76f4\u64ad\u5f55\u5236\u89c6\u9891\u4e2d\u8fde\u9ea6/Pk \u753b\u9762\u79fb\u9664", "id": "t/1109074", "date_published": "2025-02-05T06:42:41+00:00", "content_html": "

\u6c42\u52a9\uff0c\u5728\u5f55\u5236 D \u97f3\u7b49\u76f4\u64ad\u5e73\u53f0\u7684\u89c6\u9891\u65f6\uff0c\u6709\u4e9b\u4e3b\u64ad\u4e4b\u95f4\u7684\u8fde\u9ea6\u753b\u9762\u60f3\u5254\u9664\u6389\uff0c\u6709\u4ec0\u4e48\u81ea\u52a8\u5316\u7684\u5de5\u5177\u6216\u8005\u7a0b\u5e8f\u5305\u4e48\uff1f\u6211\u8bd5\u4e86\u4e00\u4e0b ffmpeg \uff0c\u53ea\u80fd\u624b\u52a8\u6307\u5b9a\u622a\u53d6\u5f00\u59cb\u65f6\u95f4\u548c\u65f6\u957f\u8fd9\u79cd\u65b9\u5f0f\uff0c\u4e0d\u80fd\u667a\u80fd\u8bc6\u522b\u88c1\u526a\u7684\u8d77\u59cb\u4f4d\u7f6e\u548c\u65f6\u957f\u3002\n\u597d\u6bd4\u8bf4\u4e00\u4e2a\u89c6\u9891\u4e2d \u6709\u4e24\u4e2a\u8fde\u9ea6\u753b\u9762\uff0c\u6211\u9700\u8981\u624b\u52a8\u627e\u5230\u8fd9\u4e24\u4e2a\u8fde\u9ea6\u753b\u9762\u7684\u8d77\u59cb\u548c\u7ec8\u6b62\u70b9\uff0c\u7136\u540e\u526a\u5207\u540e\u62fc\u63a5\u5728\u4e00\u8d77\u3002

\n

\u6709\u4ec0\u4e48\u81ea\u52a8\u5316\u7684\u65b9\u5f0f\u80fd\u591f\u5b9e\u73b0\u4e48\uff0c\u7f51\u4e0a\u4e5f\u627e\u4e86\u4e00\u6bb5 OpenCV \u7684\u4ee3\u7801\uff0c\u611f\u89c9\u6548\u7387\u4f4e\uff0c\u800c\u4e14\u901a\u8fc7\u753b\u9762\u4e2d\u51fa\u73b0\u7684\u4eba\u7269\u6570\u91cf\u5224\u65ad\u592a\u6f66\u8349\u4e86\uff0c\u751a\u81f3\u4e0d\u5982\u901a\u8fc7\u5224\u65ad\u89c6\u9891\u4e0b\u9762\u662f\u5426\u6709\u9ed1\u8fb9\u4ec0\u4e48\u7684\u66f4\u5408\u7406\u3002

\n" }, { "author": { "url": "member/JiaNa", "name": "JiaNa", "avatar": "https://cdn.v2ex.com/gravatar/00e618f9d1908398f53001a4d0192163?s=73&d=retro" }, "url": "t/1099457", "date_modified": "2024-12-22T14:19:23+00:00", "content_html": "\u4e00\u4e2a 100Mbps \u7684\u89c6\u9891\uff0c\u622a\u53d6 1/2 \u7684\u9762\u79ef\u540e\uff0c\u7801\u7387\u8bbe\u7f6e\u4e3a\u591a\u5c11\uff0c\u80fd\u591f\u8ba9\u538b\u7f29\u540e\u7684\u753b\u8d28\u63a5\u8fd1\u539f\u753b\u8d28\uff1f

1. \u6280\u672f\u6307\u6807\u6709\u54ea\u4e9b\uff1f\u901a\u8fc7 ffmpeg \u5f97\u5230\u7684 SSIM \u3001VMAF \u4e0d\u51c6\u786e\u3002\u538b\u7f29\u4e3a 2Mbps \u540e\u753b\u9762\u6a21\u7cca\uff0c\u4f46 SSIM \u4e3a 0.95 \u3001VMAF \u4e3a 85 \u3002
2. \u54ea\u4e9b\u65b9\u6cd5\u80fd\u8f85\u52a9\u8089\u773c\u6bd4\u8f83\uff1f\u6bd4\u5982\u653e\u5927\u3001\u901a\u8fc7\u526a\u8f91\u8f6f\u4ef6\u5206\u5c4f\u64ad\u653e\u3002\u6700\u597d\u6709\u89c6\u9891\u6559\u7a0b", "date_published": "2024-12-22T14:17:58+00:00", "title": "\u5982\u4f55\u6bd4\u8f83\u89c6\u9891\u538b\u7f29\u524d\u540e\u7684\u753b\u8d28\uff1f", "id": "t/1099457" }, { "author": { "url": "member/CharlesZ", "name": "CharlesZ", "avatar": "https://cdn.v2ex.com/gravatar/8bec7c830ea841cbcb8b2eff01814709?s=73&d=retro" }, "url": "t/1099072", "title": "\u4f18\u9177 Win \u5ba2\u6237\u7aef\u4e0d\u652f\u6301\u81fb\u4eab", "id": "t/1099072", "date_published": "2024-12-20T06:42:46+00:00", "content_html": "

\u5982\u9898\uff0c\u5982\u679c\u8fd9\u4e2a\u7247\u6e90\u5728\u4f18\u9177\u6ca1\u6709 4K \uff0c\u90a3 Windows \u5ba2\u6237\u7aef\u53ea\u80fd\u770b 720p \u3002\n\u7136\u800c M1 Mac \u53ef\u4ee5\u89e3\u7801\u81fb\u4eab\u5e76\u6b63\u5e38\u64ad\u653e\u3002

\n

\u611f\u89c9\u83ab\u540d\u5176\u5999\u7684\uff0c\u4f1a\u5458\u4e5f\u4e0d\u662f\u6ca1\u82b1\u94b1\uff0c\u8fd8\u5206\u8bbe\u5907\u6b67\u89c6\u3002

\n" }, { "author": { "url": "member/n18255447846", "name": "n18255447846", "avatar": "https://cdn.v2ex.com/gravatar/0b4a34fe20399f98ec5464af511916b4?s=73&d=retro" }, "url": "t/1092843", "title": "\u5947\u602a\u7684 chrome \u89c6\u9891\u89e3\u7801\u95ee\u9898", "id": "t/1092843", "date_published": "2024-11-26T09:36:32+00:00", "content_html": "
\n

\u6765\u6e90\u4e8e b \u7ad9\u7684 banner \u3002

\n
\n

\u8c8c\u4f3c chrome \u89e3\u7801.webm\u683c\u5f0f\u7684\u89c6\u9891\u662f\u8f6f\u89e3\uff0ccpu \u98d9\u9ad8\u98ce\u6247\u72c2\u8f6c\uff0c\u800c\u89e3\u7801.mp4\u5374\u662f\u786c\u4ef6\u89e3\u7801\u3002\u4e8c\u8005\u89c6\u9891 codec \u4e00\u81f4\uff0c\u53ea\u662f\u5c01\u88c5\u540e\u7f00\u4e0d\u4e00\u6837\u3002\u3002\u3002

\n
Input #0, matroska,webm, from 'a6f3f362-14c3-4dfd-8801-d69e8547a529.webm':\n Metadata:\n encoder : libwebm-0.2.1.0\n creation_time : 2024-09-25T18:16:52.000000Z\n Duration: 00:00:01.58, start: -0.007000, bitrate: 331 kb/s\n Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv), 3200x300, SAR 1:1 DAR 32:3, 12 fps, 12 tbr, 1k tbn (default)\n Metadata:\n alpha_mode : 1\n Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)\n
\n

\u8f6c\u4e0b\u9762.mp4\u786c\u89e3

\n
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'a.mp4':\n Metadata:\n major_brand : isom\n minor_version : 512\n compatible_brands: isomiso2mp41\n encoder : Lavf61.3.100\n Duration: 00:00:01.60, start: 0.000000, bitrate: 227 kb/s\n Stream #0:0[0x1](eng): Video: vp9 (Profile 0) (vp09 / 0x39307076), yuv420p(tv), 3200x300, 220 kb/s, SAR 1:1 DAR 32:3, 12 fps, 12 tbr, 16k tbn (default)\n Metadata:\n handler_name : VideoHandler\n vendor_id : [0][0][0][0]\n Stream #0:1[0x2](eng): Audio: opus (Opus / 0x7375704F), 48000 Hz, stereo, fltp, 1 kb/s (default)\n Metadata:\n handler_name : SoundHandler\n vendor_id : [0][0][0][0]\n
\n" }, { "author": { "url": "member/normaljq", "name": "normaljq", "avatar": "https://cdn.v2ex.com/avatar/0ac4/18bc/463285_large.png?m=1732168763" }, "url": "t/1091489", "date_modified": "2024-11-21T06:05:24+00:00", "content_html": "

\u6700\u8fd1\u56e0\u4e3a\u4e1a\u52a1\u9700\u8981\uff0c\u5c06\u539f\u6765\u7684 mp4 \u64ad\u653e\u6539\u6210\u4e86 m3u8 \u64ad\u653e

\n

\u4f46\u662f\u51fa\u73b0\u4e86\u95ee\u9898\uff1a

\n

\u64ad\u653e\u5927\u89c6\u9891\u7684\u65f6\u5019\uff0c\u53ea\u4f1a\u8bf7\u6c42\u524d\u9762\u4e24\u4e2a ts \u5206\u7247\u6587\u4ef6\uff08\u4f1a\u64ad\u653e\u51e0\u79d2\u949f\uff0c\u64ad\u653e\u51e0\u79d2\u540e\u5c31\u4e00\u76f4\u8f6c\u5708\u52a0\u8f7d\u4e86\uff09\uff0c\u5c0f\u89c6\u9891\u6ca1\u6709\u8fd9\u4e2a\u95ee\u9898

\n

\u6280\u672f\u6808\uff1a\u524d\u7aef vue-video-player \u89c6\u9891\u5b58\u50a8\uff1a\u963f\u91cc\u4e91 vod

\n

\u8de8\u57df\u95ee\u9898\u5df2\u7ecf\u89e3\u51b3\u8fc7\u4e86\uff0c\u4f46\u8fd8\u662f\u4e0d\u884c\uff0c\u8bf7\u95ee\u5927\u4f6c\u8fd9\u662f\u4ec0\u4e48\u95ee\u9898\uff0c\u4e07\u5206\u611f\u8c22\uff01\n\"baa68397e9981c5bfae2157f1fc7478b.png\"\n\"c0bd14e7571391c6ec3ea23c55e9dfe2.png\"

\n

\u51fa\u73b0\u95ee\u9898\u7684\u622a\u56fe\uff1a\n\"ad6ab3104bbe40dd86d66b0f75495a02.png\"

\n

m3u8 \u8bf7\u6c42\uff1a\n\"439bff06d9e194dd7a9a291bc84b3050.png\"

\n

m3u8 \u8fd4\u56de\uff1a\n\"10d43169b7e54051a98712a70a2ef1ab.png\"

\n

m3u8 \u6587\u4ef6\u5185\u5bb9\uff1a\uff08\u4e2d\u95f4\u90e8\u5206\u7701\u7565\u4e86\uff09\n\"acf65b1eb8de922c54e7561a97e07101.png\"

\n

\u4e2d\u95f4\u90e8\u5206\u7701\u7565\u4e86

\n

\"1e266c5cb5ee41cf76628cdbef21e474.png\"

\n

\u63d0\u963f\u91cc\u4e91\u7684\u5de5\u5355\uff1a\u53cd\u9988\u8fd9\u4e2a\u89c6\u9891\u53ef\u4ee5\u6b63\u5e38\u64ad\u653e\uff1a\n\"61ec21cec9d4fe85e87ba1cc196354fd.png\"

\n", "date_published": "2024-11-21T06:01:52+00:00", "title": "\u963f\u91cc\u4e91\u89c6\u9891\u64ad\u653e\u95ee\u9898\uff1a\u5927\u89c6\u9891\u53ea\u64ad\u653e\u51e0\u79d2\u540e\uff0c\u4e0d\u7ee7\u7eed\u8bf7\u6c42\u5206\u7247", "id": "t/1091489" }, { "author": { "url": "member/turfbook", "name": "turfbook", "avatar": "https://cdn.v2ex.com/avatar/c904/1cfd/20269_large.png?m=1778507289" }, "url": "t/1091091", "title": "\u60f3\u5b66\u5b66\u89c6\u9891\u526a\u8f91\u4e4b\u7c7b\u7684\u6280\u80fd, \u65b0\u624b\u4f7f\u7528\u4ec0\u4e48\u8f6f\u4ef6\u6bd4\u8f83\u5bb9\u6613\u4e0a\u624b?", "id": "t/1091091", "date_published": "2024-11-20T02:57:34+00:00", "content_html": "

\u81ea\u5e26\u7684 iMovie \u548c app store \u7684 DaVinci Resolve \u662f\u514d\u8d39\u7684,

\n

final cut pro \u8981 $300, \u4ef7\u683c\u76f8\u5dee\u597d\u5927 \ud83d\ude13, \u529f\u80fd\u548c\u4f7f\u7528\u4e5f\u76f8\u5dee\u5f88\u5927\u5417?

\n" }, { "author": { "url": "member/tuoniaoguoce", "name": "tuoniaoguoce", "avatar": "https://cdn.v2ex.com/gravatar/0191f3e65ae4761cf6ba7ff6f60830c7?s=73&d=retro" }, "url": "t/1085762", "title": "\u6709\u4ec0\u4e48\u7eaf 4K \u65e0\u5e7f\u544a\u7684\u64ad\u653e\u5668", "id": "t/1085762", "date_published": "2024-11-01T07:08:05+00:00", "content_html": "\u54ea\u6015\u8d44\u6e90\u5c11\u4e9b" }, { "author": { "url": "member/myora", "name": "myora", "avatar": "https://cdn.v2ex.com/avatar/e4a1/0cd4/176729_large.png?m=1729676029" }, "url": "t/1082981", "title": "avi \u6587\u4ef6\u4fee\u590d", "id": "t/1082981", "date_published": "2024-10-23T09:39:49+00:00", "content_html": "

\u5f55\u7684\u89c6\u9891\u6587\u4ef6\uff0c\u590d\u5236\u5230\u7535\u8111\u4e0a\u540e\uff0c\u53d1\u73b0\u4ece\u67d0\u4e2a\u6587\u4ef6\u5f00\u59cb\uff0c\u64ad\u653e\u5668\u5c31\u65e0\u6cd5\u64ad\u653e\u4e86\u3002\u4f8b\u5982\uff0c01.avi \uff5e 05.avi \u662f\u80fd\u6b63\u5e38\u64ad\u653e\u7684\uff0c06.avi \u64ad\u653e\u65f6 vlc \u63d0\u793a\u9700\u8981\u4fee\u590d index \uff0c\u70b9\u51fb\u4fee\u590d\u540e\uff0c\u53ea\u80fd\u64ad\u653e\u524d 3 \u5206\u949f\uff08\u5168\u957f 5 \u5206\u949f\uff09\uff0c\u540e\u7eed\u7684 07.avi~10.avi \u5219\u5168\u90e8\u65e0\u6cd5\u64ad\u653e\u4e86\u3002\u7528 file \u67e5\u770b\u6587\u4ef6\u7c7b\u578b\uff0c01 \uff5e 05.avi \u663e\u793a\u662f

\n
RIFF (little-endian) data, AVI, 1920 x 1080, 30.00 fps, video: Motion JPEG, audio: uncompressed PCM (mono, 16000 Hz)\n
\n

06.avi \u8ddf 01 \uff5e 05 \u4e00\u6837\u7684\u8f93\u51fa\uff0c\u4f46\u662f 07.avi~10.avi \u5219\u5168\u90e8\u90fd\u663e\u793a\u662fdata\u683c\u5f0f\u3002\u5c1d\u8bd5\u8fc7\u4f7f\u7528 ffmpeg \u4fee\u590d\uff0c\u4e00\u76f4\u62a5\u9519\uff0c\u9519\u8bef\u5982\u4e0b\uff1a

\n
[in#0 @ 0x6000039b8800] Error opening input: Invalid data found when processing input\n
\n

\u60f3\u95ee\u4e0b\u5927\u4f6c\u4eec\u8fd9\u79cd\u60c5\u51b5\u8fd8\u80fd\u4e0d\u80fd\u4fee\u590d\u7684\u4e86\uff1f

\n" }, { "author": { "url": "member/afkool", "name": "afkool", "avatar": "https://cdn.v2ex.com/gravatar/09069d134d28763cbeccac8b2e9fff3e?s=73&d=retro" }, "url": "t/1081975", "title": "\u5f00 emby \u670d\u7684\u8bdd\u9700\u8981\u5148\u5207\u7247\u5417\uff1f", "id": "t/1081975", "date_published": "2024-10-20T11:59:16+00:00", "content_html": "\u60f3\u641e\u4e2a\u5c0f\u4f17 emby \u670d\u73a9

\u5982\u679c\u76f4\u63a5\u6254\u89c6\u9891\u6587\u4ef6\u8fc7\u53bb\uff0c\u670d\u52a1\u7aef\u89e3\u7801\u3002\u8fd9\u6837\u540c\u65f6\u89c2\u770b\u7684\u4eba\u591a\u4e86\uff0c\u662f\u4e0d\u662f CPU \u548c\u5e26\u5bbd\u90fd\u76f4\u63a5\u5c31\u70b8\u4e86\u554a\uff1f

\u5207\u7247\u80fd\u7f13\u89e3\u5f88\u591a\u3002\u4e00\u822c\u5f00 emby \u670d\u662f\u76f4\u63a5\u6254\u89c6\u9891\u6587\u4ef6\u76f4\u8fde\u8fd8\u662f\u8ddf\u641e\u89c6\u9891\u7ad9\u4e00\u6837\u7528\u5207\u7247\u64ad\u653e\uff1f" }, { "author": { "url": "member/aqx", "name": "aqx", "avatar": "https://cdn.v2ex.com/avatar/06aa/b0ab/552995_large.png?m=1738049346" }, "url": "t/1079754", "date_modified": "2024-10-13T01:37:08+00:00", "content_html": "\u9700\u6c42\uff1aAI \u53bb\u9664\u89c6\u9891\u4e2d\u7684\u6f02\u6d6e\u6c34\u5370\uff0c\u5e76\u6700\u5927\u5316\u7684\u4fdd\u7559\u539f\u753b\u8d28\uff1b

\u7248\u6743\uff1a\u4e0d\u4fb5\u6743\uff0c\u6211\u4e3b\u8981\u505a\u5185\u5bb9\u8bc4\u6d4b\uff0c\u7c7b\u4f3c\u7535\u5f71\u89e3\u8bf4\uff0c\u53ea\u5f15\u7528\u51e0\u79d2\u7684\u89c6\u9891\u3002


HitPaw Watermark Remover \u8f6f\u4ef6\u6211\u7528\u8fc7\uff0c\u6548\u679c\u4e0d\u597d\u3002", "date_published": "2024-10-13T01:35:13+00:00", "title": "\u6709\u505a UP \u4e3b\u7684\u5417\uff1f\u8fdb\u6765\u770b\u770b\u6709\u6ca1\u6709\u6bd4\u8fd9\u79cd AI \u53bb\u89c6\u9891\u6c34\u5370\u66f4\u597d\u7684\u529e\u6cd5\uff1f", "id": "t/1079754" }, { "author": { "url": "member/ocdye32", "name": "ocdye32", "avatar": "https://cdn.v2ex.com/gravatar/880b8d7c25e08cb08ae0c456184481a1?s=73&d=retro" }, "url": "t/1078738", "date_modified": "2024-10-09T23:58:44+00:00", "content_html": "

\u5047\u8bbe\u6211\u7528\u624b\u673a\u5f55\u5236\u4e86\u4e00\u6bb5 400MB \u7684\u89c6\u9891\uff0c\u7136\u540e\u6211\u7528 PR \u628a\u8fd9\u6bb5\u89c6\u9891\u91cd\u65b0\u538b\u5236\u6210\u5206\u522b\u4e3a 200MB 400MB 800MB \u7684\u76f8\u540c\u683c\u5f0f\u548c\u5206\u8fa8\u7387\u7684\u89c6\u9891\uff0c\u90a3\u4e48\u8fd9\u56db\u6bb5\u89c6\u9891\u7684\u6e05\u6670\u5ea6\u5927\u5c0f\u987a\u5e8f\u662f\u4ec0\u4e48\uff1f

\n", "date_published": "2024-10-09T18:48:13+00:00", "title": "\u7528\u66f4\u9ad8\u7684\u7801\u7387\u538b\u5236\u4e00\u6bb5\u89c6\u9891\uff0c\u4ed6\u76f8\u6bd4\u539f\u89c6\u9891\u591a\u51fa\u6765\u7801\u7387\u4f5c\u7528\u662f\u4ec0\u4e48\uff1f", "id": "t/1078738" }, { "author": { "url": "member/Jinnrry", "name": "Jinnrry", "avatar": "https://cdn.v2ex.com/gravatar/f759ce4a1c2d8c5530deeee4203a1575?s=73&d=retro" }, "url": "t/1078194", "date_modified": "2024-10-08T02:48:26+00:00", "content_html": "

\u80cc\u666f\uff1a

\n

\u5bbf\u4e3b\u673a PVE \uff0craid \u9635\u5217\uff0c2.5G \u7f51\u5361\uff0c128G \u5185\u5b58\uff0c32 \u6838\u5904\u7406\u5668\uff0cvGPU \u663e\u5361\uff0c\u673a\u5668\u786c\u4ef6\u80af\u5b9a\u662f\u6ca1\u6709\u4efb\u4f55\u95ee\u9898\u7684\u3002

\n

\u865a\u62df\u673a 1: ubuntu \u5b89\u88c5 docker \uff0cdocker \u5b89\u88c5 emby

\n

\u865a\u62df\u673a 2: \u9ed1\u7fa4\u6656

\n

\u914d\u7f6e\u65b9\u6848\uff1a\u9ed1\u88d9\u5f00\u542f smb \uff0cemby \u901a\u8fc7 smb \u8bbf\u95ee\u89c6\u9891\u5185\u5bb9

\n

\u64ad\u653e\u65b9\u6848\uff1a

\n

\u575a\u679c N1S Ultra \u6295\u5f71\u4eea\uff0c\u5b89\u88c5 emby \u5ba2\u6237\u7aef\u64ad\u653e

\n

\u95ee\u9898\uff1a

\n

1 \u3001\u64ad\u653e\u90e8\u5206\u84dd\u5149\u89c6\u9891\u7684\u65f6\u5019\u5f88\u5361\uff0c\u4f46\u662f\u770b\u8d77\u6765\u78c1\u76d8 io \uff0c\u7f51\u7edc io \uff0ccpu idel \u90fd\u6ca1\u6709\u4efb\u4f55\u5f02\u5e38\uff0c\u90a3\u4e48\u6211\u8fd9\u79cd\u67b6\u6784\u4e0b\uff0c\u5230\u5e95\u662f\u6295\u5f71\u4eea\u5728\u89e3\u7801\u8fd8\u662f NAS \u5728\u89e3\u7801\uff1f\u6211\u770b emby \u8bbe\u7f6e\u90a3\u91cc\u5199\u7740\u5982\u679c\u60f3\u8981\u7528\u663e\u5361\u52a0\u901f\uff0c\u9700\u8981\u4ed8\u8d39\uff0c\u6240\u4ee5\u6211\u8fd9\u4e2a NAS \u7684 GPU \u5e94\u8be5\u662f\u6ca1\u7528\u5427\uff1f\u6240\u4ee5\u5230\u5e95\u662f\u54ea\u4e2a\u5730\u65b9\u7684\u95ee\u9898\u5bfc\u81f4\u64ad\u653e\u5361\u987f\u7684\u5440\uff1f

\n

2 \u3001\u64ad\u653e\u90e8\u5206\u84dd\u5149\u89c6\u9891\u7684\u65f6\u5019\uff0c\u989c\u8272\u4e0d\u5bf9\uff0c\u6bd4\u5982\u753b\u9762\u5927\u90e8\u5206\u7eff\u8272\u90fd\u53d8\u6210\u4e86\u7ea2\u8272\u3002\u6bd4\u5982\u770b\u300a\u7329\u7403\u5d1b\u8d77\u300b\uff0c\u6240\u6709\u7684\u6811\u6728\u90fd\u53d8\u6210\u7ea2\u8272\u7684\u4e86\uff0c\u6211\u770b\u7f51\u4e0a\u8bf4\u597d\u50cf\u662f HDR \u7684\u95ee\u9898\uff0c\u4f46\u662f\u6211\u65e0\u8bba\u662f\u5728 Emby \u91cc\u9762\u8fd8\u662f\u5728\u6295\u5f71\u4eea\u4e0a\u9762\uff0c\u90fd\u6ca1\u627e\u5230\u54ea\u91cc\u6709\u76f8\u5173\u8bbe\u7f6e\uff0c\u8fd9\u4e2a\u53c8\u5230\u5e95\u662f\u54ea\u91cc\u7684\u95ee\u9898\u5462\uff1f

\n", "date_published": "2024-10-08T02:47:57+00:00", "title": "Emby \u64ad\u653e\u89c6\u9891\u5f88\u5361\uff0c\u989c\u8272\u4e5f\u4e0d\u6b63\u5e38\uff0c\u8bf7\u95ee\u662f\u600e\u4e48\u56de\u4e8b\uff1f", "id": "t/1078194" }, { "author": { "url": "member/JiaNa", "name": "JiaNa", "avatar": "https://cdn.v2ex.com/gravatar/00e618f9d1908398f53001a4d0192163?s=73&d=retro" }, "url": "t/1077176", "title": "\u5982\u4f55\u8bbe\u7f6e\u89c6\u9891\u5730\u7406\u4f4d\u7f6e\u5143\u4fe1\u606f\uff1f", "id": "t/1077176", "date_published": "2024-09-30T10:03:02+00:00", "content_html": "\u8981\u6c42\u7cbe\u786e\u5230\u7ecf\u7eac\u5ea6\uff0c\u53ef\u4ee5\u5728 Mac \u4e0a\u8fd0\u884c\uff0c\u6700\u597d\u4e5f\u9002\u7528\u4e8e\u7167\u7247\u3002

\u526a\u8f91\u89c6\u9891\u540e\u4e22\u5931\u4e86\u539f\u6765\u7684\u4f4d\u7f6e\u4fe1\u606f\uff0c\u60f3\u8981\u8bfb\u53d6\u4e00\u4e2a\u89c6\u9891\u7684\u7ecf\u7eac\u5ea6\uff0c\u7136\u540e\u5c06\u5176\u8bbe\u7f6e\u4e3a\u53e6\u4e00\u4e2a\u89c6\u9891\u7684\u4f4d\u7f6e\u4fe1\u606f\u3002

\u6807\u7b7e\uff1aExif" }, { "author": { "url": "member/panxi", "name": "panxi", "avatar": "https://cdn.v2ex.com/avatar/8a43/2d46/543302_large.png?m=1762413050" }, "url": "t/1076187", "date_modified": "2024-09-27T01:55:44+00:00", "content_html": "\u4e0a\u9762\u8fd9\u4e24\u4e2a\u89c6\u9891\u5408\u5e76\u540e\u751f\u6210\u7684\u65b0\u89c6\u9891\u5728\u64ad\u5b8c\u7b2c\u4e00\u4e2a\u89c6\u9891\u540e\u64ad\u7b2c\u4e8c\u4e2a\u89c6\u9891\u753b\u9762\u4e2d\u4eba\u7269\u4f1a\u51fa\u73b0 0.5 \u79d2\u7684\u4e22\u5931, \u79bb\u5927\u8c31\u4e86, \u6709\u61c2\u7684\u5927\u4f6c\u77e5\u9053\u4e3a\u5565\u4e0d?


\u5408\u5e76\u89c6\u9891 1 https://umi-digital-human.oss-cn-shenzhen.aliyuncs.com/videos/demo1727401313000.mp4

\u5408\u5e76\u89c6\u9891 2 https://umi-digital-human.oss-cn-shenzhen.aliyuncs.com/videos/demo1727401269000.mp4

\u5408\u5e76\u540e\u7684 https://umi-digital-human.oss-cn-shenzhen.aliyuncs.com/videos/demo1727401393000.mp4


\u547d\u4ee4: \u5c31\u662f\u7b80\u5355\u7684\u5408\u5e76\u547d\u4ee4, videoList.txt \u5c31\u662f\u8fd9\u4e24\u4e2a\u89c6\u9891

ffmpeg -f concat -safe 0 -i ./videoList.txt -c copy ./merged_video.mp4", "date_published": "2024-09-27T01:49:14+00:00", "title": "\u5144\u5f1f\u4eec, ffmpeg \u641e\u4e0d\u5b9a, \u6709\u61c2\u7684\u5927\u4f6c\u5417?", "id": "t/1076187" }, { "author": { "url": "member/majianglin", "name": "majianglin", "avatar": "https://cdn.v2ex.com/gravatar/07ca8a3bdc355f4174cbfb302f6c4f44?s=73&d=retro" }, "url": "t/1075448", "title": "\u6c42\u89c6\u9891\u76d1\u63a7\u89e3\u51b3\u65b9\u6848", "id": "t/1075448", "date_published": "2024-09-24T08:31:14+00:00", "content_html": "\u8981\u90e8\u7f72\u51e0\u5343\u4e2a\u6444\u50cf\u5934\uff0c\u5206\u5e03\u5728\u5168\u56fd\u5404\u5730\uff0c\u7f51\u7edc\u4f7f\u7528\u7269\u8054\u7f51\u8def\u7531\u5668\u4e0a\u7f51

\u57fa\u672c\u9700\u6c42\uff1a

\u60f3\u5b9e\u73b0\u6d3b\u52a8\u68c0\u6d4b\u4e0a\u62a5\uff0c\u62cd\u7167\uff0c\u5728\u7ba1\u7406\u7aef\u63a7\u5236\u53f0(web)\u4e0a\u80fd\u67e5\u770b\u67d0\u4e2a\u6444\u50cf\u5934\u7684\u5b9e\u65f6\u753b\u9762

\u9ad8\u7ea7\u9700\u6c42\uff1a
\u68c0\u6d4b\u5230\u6709\u4eba\u6d3b\u52a8\uff0c\u5c31\u7ed9\u670d\u52a1\u5668\u4e0a\u62a5
\u670d\u52a1\u5668\u4e0b\u53d1\u6307\u4ee4\uff0c\u53ef\u4ee5\u8f6c\u52a8\u6444\u50cf\u5934\uff0c\u62cd\u7167\uff0c\u5f55\u50cf\uff0c\u67e5\u770b\u5b9e\u65f6\u753b\u9762

\u8fd9\u4e2a\u65b9\u5411\u54ea\u4f4d\u5927\u4f6c\u6709\u7ecf\u9a8c\uff1f\u6307\u70b9\u4e00\u4e0b\u6211

\u6700\u597d\u6d41\u5a92\u4f53\u670d\u52a1\u5668\u4e5f\u662f\u5f00\u6e90\u7684\uff0c\u7528\u4e91\u670d\u52a1\u4e5f\u884c" }, { "author": { "url": "member/whhxf910", "name": "whhxf910", "avatar": "https://cdn.v2ex.com/gravatar/8be6f4da634e80ae4c00a62f037d1abe?s=73&d=retro" }, "url": "t/1071246", "title": "uniapp \u65b9\u5f0f\u5b9e\u73b0\u89c6\u9891\u64ad\u653e\u52a0\u5bc6\u7edf\u8ba1", "id": "t/1071246", "date_published": "2024-09-09T03:25:00+00:00", "content_html": "

uniapp \u65b9\u5f0f\u5b9e\u73b0\u89c6\u9891\u64ad\u653e\u52a0\u5bc6\u7edf\u8ba1

\n

\u5728\u79fb\u52a8\u5e94\u7528\u5f00\u53d1\u4e2d\uff0c\u89c6\u9891\u64ad\u653e\u529f\u80fd\u662f\u5e38\u89c1\u7684\u9700\u6c42\u4e4b\u4e00\uff0c\u800c\u89c6\u9891\u5185\u5bb9\u7684\u52a0\u5bc6\u4fdd\u62a4\u548c\u7edf\u8ba1\u5219\u6210\u4e3a\u4e86\u5f00\u53d1\u8005\u9700\u8981\u5173\u6ce8\u7684\u95ee\u9898\u3002\u672c\u6587\u5c06\u5206\u4eab\u5982\u4f55\u4f7f\u7528 uniapp \u7ed3\u5408\u89c6\u9891\u4e91\u70b9\u64ad\u63d2\u4ef6\uff0c\u5b9e\u73b0\u89c6\u9891\u64ad\u653e\u7684\u52a0\u5bc6\u548c\u7edf\u8ba1\u529f\u80fd\u3002\u5bf9\u65b9\u6848\u6709\u4efb\u4f55\u7591\u95ee\uff0c\u53ef V\uff1awjc24680525

\n

\u73af\u5883\u51c6\u5907

\n

\u5728\u5f00\u59cb\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u4f60\u5df2\u7ecf\u5b89\u88c5\u4e86 HBuilderX \uff0c\u5e76\u521b\u5efa\u4e86\u4e00\u4e2a uniapp \u9879\u76ee\u3002\u63a5\u4e0b\u6765\uff0c\u4f60\u9700\u8981\u4ece\u63d2\u4ef6\u5e02\u573a\u8d2d\u4e70\u5e76\u4e0b\u8f7d\u89c6\u9891\u4e91\u70b9\u64ad\u63d2\u4ef6\u3002

\n

\u96c6\u6210\u63d2\u4ef6

\n
    \n
  1. \u8d2d\u4e70\u63d2\u4ef6\uff1a\u5728\u63d2\u4ef6\u5e02\u573a\u4e2d\u9009\u62e9\u89c6\u9891\u4e91\u70b9\u64ad\u63d2\u4ef6\uff0c\u5e76\u7ed1\u5b9a\u5230\u4f60\u7684\u9879\u76ee\u4e2d\u3002
  2. \n
  3. \u914d\u7f6e\u63d2\u4ef6\uff1a\u5728\u9879\u76ee\u7684manifest.json\u6587\u4ef6\u4e2d\uff0c\u627e\u5230app \u539f\u751f\u63d2\u4ef6\u914d\u7f6e\u90e8\u5206\uff0c\u52fe\u9009\u89c6\u9891\u4e91\u70b9\u64ad\u63d2\u4ef6\u3002
  4. \n
\n

\u89c6\u9891\u64ad\u653e\u52a0\u5bc6

\n

\u89c6\u9891\u52a0\u5bc6\u662f\u4fdd\u62a4\u89c6\u9891\u5185\u5bb9\u4e0d\u88ab\u975e\u6cd5\u83b7\u53d6\u7684\u91cd\u8981\u624b\u6bb5\u3002\u63d2\u4ef6\u63d0\u4f9b\u4e86\u5f3a\u5927\u7684\u52a0\u5bc6\u529f\u80fd\uff0c\u6211\u4eec\u53ef\u4ee5\u5229\u7528\u8fd9\u4e00\u529f\u80fd\u6765\u4fdd\u62a4\u6211\u4eec\u7684\u89c6\u9891\u5185\u5bb9\u3002

\n

\u914d\u7f6e\u52a0\u5bc6\u53c2\u6570

\n

\u9996\u5148\uff0c\u4f60\u9700\u8981\u5728\u89c6\u9891\u4e91\u5e73\u53f0\u83b7\u53d6userid\u3001readtoken\u3001writetoken\u548csecretkey\uff0c\u8fd9\u4e9b\u53c2\u6570\u5c06\u7528\u4e8e\u89c6\u9891\u7684\u52a0\u5bc6\u548c\u89e3\u5bc6\u3002

\n
var cOnfigModule= uni.requireNativePlugin(\"PLV-VodUniPlugin-ConfigModule\");\nconfigModule.setToken({\n 'userid': '\u4f60\u7684 userid',\n 'readtoken': '\u4f60\u7684 readtoken',\n 'writetoken': '\u4f60\u7684 writetoken',\n 'secretkey': '\u4f60\u7684 secretkey'\n}, (ret) => {\n if (ret.isSuccess) {\n console.log('\u8bbe\u7f6e token \u6210\u529f');\n } else {\n console.error('\u8bbe\u7f6e token \u5931\u8d25\uff1a', ret.errMsg);\n }\n});\n
\n

\u89c6\u9891\u64ad\u653e

\n

\u4f7f\u7528\u89c6\u9891\u4e91\u70b9\u64ad\u63d2\u4ef6\u63d0\u4f9b\u7684\u64ad\u653e\u5668\u7ec4\u4ef6plv-player\u6765\u64ad\u653e\u89c6\u9891\u3002

\n
<template>\n <plv-player\n ref=\"vod\"\n class=\"vod-player\"\n seekType=\"0\"\n autoPlay=\"true\"\n disableScreenCAP=\"false\"\n rememberLastPosition=\"false\"\n @OnPlayStatus=\"onPlayStatus\"\n @OnPlayError=\"onPlayError\"\n @positiOnChange=\"positionChange\">\n </plv-player>\n</template>\n\n<script>\nexport default {\n methods: {\n setVid() {\n this.$refs.vod.setVid({\n vid: '\u89c6\u9891\u7684 vid',\n level: 0\n }, (ret) => {\n if (ret.errMsg) {\n uni.showToast({\n title: ret.errMsg,\n icon: \"none\"\n });\n }\n });\n },\n onPlayStatus(e) {\n console.log('\u64ad\u653e\u72b6\u6001\uff1a', e.playbackState);\n },\n onPlayError(e) {\n console.error('\u64ad\u653e\u9519\u8bef\uff1a', e.errCode, e.errEvent);\n },\n positionChange(e) {\n console.log('\u5f53\u524d\u64ad\u653e\u4f4d\u7f6e\uff1a', e.currentPosition);\n }\n },\n mounted() {\n this.setVid();\n }\n}\n</script>\n\n<style>\n.vod-player {\n width: 100%;\n height: 100%;\n}\n</style>\n
\n

\u89c6\u9891\u64ad\u653e\u7edf\u8ba1

\n

\u89c6\u9891\u64ad\u653e\u7edf\u8ba1\u5bf9\u4e8e\u4e86\u89e3\u7528\u6237\u884c\u4e3a\u548c\u4f18\u5316\u5185\u5bb9\u81f3\u5173\u91cd\u8981\u3002\u63d2\u4ef6\u5bf9\u5e94\u7684\u7ba1\u7406\u540e\u53f0\u63d0\u4f9b\u4e86\u4e30\u5bcc\u7684\u7edf\u8ba1\u5b57\u6bb5\u548c API \uff0c\u53ef\u6839\u636e\u5b9e\u9645\u9700\u6c42\u8c03\u7528

\n" }, { "author": { "url": "member/whhxf910", "name": "whhxf910", "avatar": "https://cdn.v2ex.com/gravatar/8be6f4da634e80ae4c00a62f037d1abe?s=73&d=retro" }, "url": "t/1071229", "title": "uniapp \u65b9\u5f0f\u5b9e\u73b0\u76f4\u64ad\u5e26\u8d27\u7ebf\u4e0a\u57f9\u8bad", "id": "t/1071229", "date_published": "2024-09-09T02:50:56+00:00", "content_html": "

uniapp \u65b9\u5f0f\u5b9e\u73b0\u76f4\u64ad\u5e26\u8d27\u7ebf\u4e0a\u57f9\u8bad

\n

\u7b80\u4ecb

\n

\u5728\u5f53\u524d\u7684\u4e92\u8054\u7f51\u65f6\u4ee3\uff0c\u76f4\u64ad\u5df2\u6210\u4e3a\u4e00\u79cd\u6d41\u884c\u7684\u4e92\u52a8\u65b9\u5f0f\uff0c\u65e0\u8bba\u662f\u7528\u4e8e\u5546\u4e1a\u63a8\u5e7f\u8fd8\u662f\u6559\u80b2\u57f9\u8bad\u3002uniapp \u6846\u67b6\u5229\u7528 Vue.js \uff0c\u5141\u8bb8\u5f00\u53d1\u8005\u7f16\u5199\u4e00\u6b21\u4ee3\u7801\uff0c\u5373\u53ef\u5728\u591a\u4e2a\u5e73\u53f0\u4e0a\u90e8\u7f72\u5e94\u7528\uff0c\u5305\u62ec iOS \u3001Android \u3001Web \u4ee5\u53ca\u5404\u7c7b\u5c0f\u7a0b\u5e8f\u3002\u672c\u6587\u5c06\u63a2\u8ba8\u5982\u4f55\u4f7f\u7528 uniapp \u7ed3\u5408\u7279\u5b9a\u7684\u76f4\u64ad SDK \uff0c\u6765\u5f00\u53d1\u652f\u6301\u76f4\u64ad\u5e26\u8d27\u3001\u7ebf\u4e0a\u57f9\u8bad\u7684\u5e94\u7528\u3002\u5bf9\u65b9\u6848\u6709\u4efb\u4f55\u7591\u95ee\uff0c\u53ef V\uff1awjc24680525

\n

\u6280\u672f\u6982\u89c8

\n

\u672c\u6587\u4ecb\u7ecd\u7684\u6280\u672f\u65b9\u6848\u6d89\u53ca\u4e00\u4e2a\u76f4\u64ad SDK \u63d2\u4ef6\uff0c\u5b83\u4e3a Android \u548c iOS \u5e73\u53f0\u63d0\u4f9b\u4e86\u539f\u751f\u652f\u6301\uff0c\u80fd\u591f\u8986\u76d6\u7ebf\u4e0a\u57f9\u8bad\u548c\u76f4\u64ad\u5e26\u8d27\u4e24\u5927\u5e94\u7528\u573a\u666f\u3002

\n

\u529f\u80fd\u7279\u70b9

\n\n

\u5f00\u53d1\u6b65\u9aa4

\n

1. \u521b\u5efa\u8d26\u53f7

\n

\u9996\u5148\uff0c\u9700\u8981\u5728\u76f8\u5173\u76f4\u64ad\u5e73\u53f0\u7684\u5b98\u65b9\u7f51\u7ad9\u6ce8\u518c\u8d26\u53f7\uff0c\u4ee5\u4fbf\u83b7\u53d6\u5fc5\u8981\u7684\u5f00\u53d1\u914d\u7f6e\u4fe1\u606f\u3002

\n

2. \u6536\u96c6\u5173\u952e\u914d\u7f6e\u4fe1\u606f

\n

\u5728\u6ce8\u518c\u5e76\u767b\u5f55\u5e73\u53f0\u540e\uff0c\u4ece\u540e\u53f0\u83b7\u53d6appId\u3001userId\u3001appSecret\u7b49\u5173\u952e\u914d\u7f6e\u4fe1\u606f\uff0c\u8fd9\u4e9b\u5c06\u7528\u4e8e SDK \u63d2\u4ef6\u7684\u521d\u59cb\u5316\u548c\u529f\u80fd\u8c03\u7528\u3002

\n

3. SDK \u63d2\u4ef6\u96c6\u6210

\n

\u6839\u636e SDK \u63d2\u4ef6\u63d0\u4f9b\u65b9\u7684\u6587\u6863\uff0c\u5c06\u76f4\u64ad SDK \u63d2\u4ef6\u96c6\u6210\u5230 uniapp \u9879\u76ee\u4e2d\u3002\u5305\u62ec\u4ee5\u4e0b\u6b65\u9aa4\uff1a

\n\n

\u4ee3\u7801\u793a\u4f8b

\n

\u914d\u7f6e SDK \u63d2\u4ef6

\n
var cOnfigModule= uni.requireNativePlugin(\"LiveScenesConfigModule\");\n\n// \u521d\u59cb\u5316 SDK \u914d\u7f6e\nconfigModule.setConfig({\n appId: \"\u60a8\u7684 appId\",\n userId: \"\u60a8\u7684 userId\",\n appSecret: \"\u60a8\u7684 appSecret\"\n}, (result) => {\n if (result.isSuccess) {\n console.log(\"SDK \u63d2\u4ef6\u914d\u7f6e\u6210\u529f\");\n } else {\n console.error(\"SDK \u914d\u7f6e\u5931\u8d25\uff1a\", result.errMsg);\n }\n});\n
\n

\u4f7f\u7528\u64ad\u653e\u6a21\u5757

\n
var playModule = uni.requireNativePlugin(\"LiveScenesPlayModule\");\n\n// \u52a0\u5165\u76f4\u64ad\u6559\u5ba4\nplayModule.joinLiveClassroom(1, { // 1 \u8868\u793a\u5728\u7ebf\u6559\u80b2\u573a\u666f\n channelId: \"\u7279\u5b9a\u9891\u9053\u53f7\",\n additionalParams: {\n param4: \"\u81ea\u5b9a\u4e49\u53c2\u6570\",\n param5: \"\u81ea\u5b9a\u4e49\u53c2\u6570\"\n }\n}, (result) => {\n if (result.isSuccess) {\n console.log(\"\u6210\u529f\u52a0\u5165\u76f4\u64ad\");\n } else {\n console.error(\"\u52a0\u5165\u76f4\u64ad\u5931\u8d25\uff1a\", result.errMsg);\n }\n});\n
\n

\u6ce8\u610f\u4e8b\u9879

\n\n

\u7ed3\u8bba

\n

\u5229\u7528 uniapp \u6846\u67b6\u7ed3\u5408\u76f4\u64ad SDK \u63d2\u4ef6\uff0c\u53ef\u4ee5\u9ad8\u6548\u5730\u5f00\u53d1\u51fa\u529f\u80fd\u4e30\u5bcc\u7684\u76f4\u64ad\u5e94\u7528\u3002\u672c\u6587\u63d0\u4f9b\u7684\u6307\u5357\u548c\u4ee3\u7801\u793a\u4f8b\u65e8\u5728\u5e2e\u52a9\u5f00\u53d1\u8005\u5feb\u901f\u4e0a\u624b\u8fd9\u4e00\u8fc7\u7a0b\u3002

\n

\u53c2\u8003\u8d44\u6e90

\n\n" }, { "author": { "url": "member/caohongyuan", "name": "caohongyuan", "avatar": "https://cdn.v2ex.com/avatar/514a/d4cb/673231_large.png?m=1773466243" }, "url": "t/1069996", "date_modified": "2024-09-03T10:40:33+00:00", "content_html": "\u8fd8\u5728\u4e3a\u65e0\u5b57\u5e55\u7684 YouTube \u89c6\u9891\u800c\u70e6\u607c\uff1f

\u5b89\u88c5\u4e86\u5f88\u591a\u63d2\u4ef6\u6216\u8005\u4ea7\u54c1\uff0c\u53d1\u73b0\u90fd\u603b\u7ed3\u4e0d\u4e86\u65e0\u5b57\u5e55\u7684 YouTube \u89c6\u9891\uff1f

\u597d\u4e86\uff0c\u770b\u5230\u8fd9\u4e2a\u5e16\u5b50\u7684\u4f60\u627e\u5230\u6700\u4f73\u89e3\u51b3\u65b9\u6848\u4e86\uff01

NoteGPT \u4e0a\u7ebf\u4e86\u4e00\u6b3e\u514d\u8d39\u7684\u5de5\u5177\uff1a https://notegpt.io/youtube-transcript-generator

1 \uff09\u901a\u8fc7 AI \u63d0\u53d6\u65e0\u5b57\u5e55\u7684 YouTube \u89c6\u9891\u5b57\u5e55\uff1b
2 \uff09 AI \u603b\u7ed3\u5f53\u524d\u89c6\u9891\uff1b
3 \uff09 AI \u751f\u6210\u601d\u7ef4\u5bfc\u56fe\uff1b
4 \uff09 AI \u7ffb\u8bd1\u5f53\u524d\u89c6\u9891\uff1b
5 \uff09 AI \u5bf9\u8bdd\u5f53\u524d YouTube \u89c6\u9891\uff1b

\u514d\u8d39\u4f7f\u7528\u3001\u65e0\u9700\u767b\u5f55\uff01", "date_published": "2024-09-03T10:39:26+00:00", "title": "\u4e00\u6b3e\u53ef\u4ee5\u63d0\u53d6\u548c\u603b\u7ed3\u65e0\u5b57\u5e55\u7684 YouTube \u7684\u514d\u8d39\u5de5\u5177\uff1a NoteGPT\uff01", "id": "t/1069996" }, { "author": { "url": "member/whhxf910", "name": "whhxf910", "avatar": "https://cdn.v2ex.com/gravatar/8be6f4da634e80ae4c00a62f037d1abe?s=73&d=retro" }, "url": "t/1069939", "title": "\u4e2d\u53f0\u5efa\u8bbe\u65b9\u6848\u5b9e\u73b0\u5b9a\u5236\u5316\u76f4\u64ad\u5e73\u53f0", "id": "t/1069939", "date_published": "2024-09-03T08:20:02+00:00", "content_html": "

\u4e2d\u53f0\u5efa\u8bbe\u65b9\u6848\u5b9e\u73b0\u5b9a\u5236\u5316\u76f4\u64ad\u5e73\u53f0

\n

\u4ecb\u7ecd

\n\n

\u89c2\u770b\u9875\u5b9a\u5236

\n\n

\u7ba1\u7406\u540e\u53f0\u5b9a\u5236

\n\n" }, { "author": { "url": "member/whhxf910", "name": "whhxf910", "avatar": "https://cdn.v2ex.com/gravatar/8be6f4da634e80ae4c00a62f037d1abe?s=73&d=retro" }, "url": "t/1068462", "title": "\u5982\u4f55\u5b9e\u73b0 App \u5185\u7684\u89c6\u9891/\u76f4\u64ad\u60ac\u6d6e\u5c0f\u7a97\u64ad\u653e", "id": "t/1068462", "date_published": "2024-08-28T07:04:47+00:00", "content_html": "

\u65b9\u6848\u6982\u8ff0

\n\n

\u4e00\u3001\u5b89\u5353\u5bf9\u63a5\u8bf4\u660e

\n

1.1 \u96c6\u6210\u7b80\u4ecb

\n

1.1.1 \u9879\u76ee\u67b6\u6784\u56fe

\n

1.1.2 \u4f7f\u7528\u6e90\u7801\u9879\u76ee\u96c6\u6210

\n

\u5f53\u524d\u5c06\u63d0\u4f9b\u7684\u6e90\u7801\u5305\u4e2d\u7684 PolyvAndroidWebViewDemo \u3001PLVWebViewSDK \u3001PLVJsBridge \u3001PLVFloatWindow \u56db\u4e2a\u9879\u76ee\u653e\u5165\u5230\u540c\u4e00\u76ee\u5f55\u4e0b\uff0c\u7136\u540e\u4f7f\u7528\u7f16\u8bd1\u5668\u6253\u5f00 PolyvAndroidWebViewDemo \u9879\u76ee\u5373\u53ef\u3002

\n

1.1.3 \u6e90\u7801\u96c6\u6210\u6ce8\u610f\u4e8b\u9879

\n

\u529f\u80fd\u5bf9\u63a5\u8bf4\u660e

\n

\u53c2\u8003\u00a01.2 \u529f\u80fd\u5bf9\u63a5\u6587\u6863

\n

\u66f4\u6362\u901a\u4fe1\u534f\u8bae

\n

\u5982\u679c\u9700\u8981\u66f4\u6362 web-native \u901a\u4fe1\u534f\u8bae\u7684\u60c5\u51b5\u65f6\uff0c\u53ef\u4ee5\u53c2\u8003\u63d0\u4f9b\u7684\u00a0\u00a01.3 \u66f4\u6362 web-native \u901a\u4fe1\u89c4\u5219\u6ce8\u610f\u4e8b\u9879

\n

1.2 \u529f\u80fd\u5bf9\u63a5\u6587\u6863

\n

1.2.1 \u529f\u80fd\u8bbe\u7f6e

\n

\u8bbe\u7f6e Url \u548c UA

\n

\u5728\u542f\u52a8 PLVWebViewDemoActivity \u4e4b\u524d\uff0c\u6211\u4eec\u9700\u8981\u8bbe\u7f6e\u52a0\u8f7d\u7684 Url \u548c\u6dfb\u52a0\u4e0a\u9700\u8981\u7528\u5230\u7684 Ua \uff0c\u8fd9\u91cc\u53ef\u4ee5\u901a\u8fc7PLVWebViewConfig\u6765\u8fdb\u884c\u8bbe\u7f6e\uff0c\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a

\n
PLVWebViewConfig cOnfig= new PLVWebViewConfig(); \nconfig.setUrl(\"\u9700\u8981\u52a0\u8f7d\u7684 url\") .setUa(\"\u9700\u8981\u6dfb\u52a0\u7684 UA\"); \nPLVWebViewDemoActivity.startWebViewDemoActivity(PLVURLInputActivity.this, config);\n
\n

\u8bbe\u7f6e\u5c0f\u7a97\u8fb9\u6846\u989c\u8272

\n

\u5f53\u524d SDK \u652f\u6301\u8bbe\u7f6e\u5c0f\u7a97\u8fb9\u6846\u989c\u8272\uff0c\u901a\u8fc7PLVFloatWindowManager\u8fdb\u884c\u8bbe\u7f6e\uff0c\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a

\n
PLVFloatWindowManager.getInstance().setSolidColor(Color.RED);\n
\n
1 \uff09\u8bbe\u7f6e\u5c0f\u7a97\u8fb9\u6846\u539a\u5ea6
\n

\u5f53\u524d SDK \u652f\u6301\u8bbe\u7f6e\u5c0f\u7a97\u8fb9\u6846\u989c\u8272\uff0c\u901a\u8fc7PLVFloatWindowManager\u8fdb\u884c\u8bbe\u7f6e\uff0c\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a

\n
PLVFloatWindowManager.getInstance().setSolidWidth(20);\n
\n
2 \uff09\u8bbe\u7f6e\u81ea\u52a8\u5f00\u542f\u5c0f\u7a97\u529f\u80fd
\n

\u5f53\u8fdb\u7a0b\u9000\u5230\u540e\u53f0\u65f6\u4f1a\u81ea\u52a8\u5524\u51fa\u5c0f\u7a97(\u9ed8\u8ba4\u5173\u95ed)\uff0c\u901a\u8fc7PLVFloatWindowManager\u8fdb\u884c\u8bbe\u7f6e\uff0c\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a

\n
PLVWebViewConfig cOnfig= new PLVWebViewConfig(); \nconfig.setSupportAutoFloating(true); // \u5f00\u542f\u81ea\u52a8\u5f00\u542f\u5c0f\u7a97\u529f\u80fd \nPLVWebViewDemoActivity.startWebViewDemoActivity(PLVURLInputActivity.this, config);\n
\n
3 \uff09\u4f7f\u7528\u7cfb\u7edf/\u5e94\u7528\u5c0f\u7a97
\n

\u5f53\u524d\u5c0f\u7a97\u652f\u6301\u7cfb\u7edf\u5c0f\u7a97\u548c\u5e94\u7528\u7a97(\u9ed8\u8ba4\u4f7f\u7528\u7cfb\u7edf\u5c0f\u7a97)\uff0c\u5982\u679c\u5f00\u542f\u7cfb\u7edf\u5c0f\u7a97\u9700\u8981\u8bf7\u6c42\u5c0f\u7a97\u60ac\u6d6e\u6743\u9650\uff0c\u800c\u5e94\u7528\u5c0f\u7a97\u4e0d\u9700\u8981\u8bf7\u6c42\u6743\u9650\uff0c\u6ce8\u610f\u5e94\u7528\u5c0f\u7a97\u4f9d\u8d56\u4e8e Activity \uff0c\u5f53 Activity \u88ab\u9500\u6bc1\u65f6\uff0c\u5e94\u7528\u5c0f\u7a97\u4e5f\u4f1a\u88ab\u5173\u95ed\u3002

\n
PLVWebViewConfig cOnfig= new PLVWebViewConfig(); \nconfig.isSystemFloatingWindow(true);// \u4e3a true \u65f6\u4f7f\u7528\u7cfb\u7edf\u7a97\uff0cfalse \u4e3a\u4f7f\u7528\u5e94\u7528\u5c0f\u7a97 \nPLVWebViewDemoActivity.startWebViewDemoActivity(PLVURLInputActivity.this, config);\n
\n
4 \uff09\u4f7f\u7528\u539f\u751f/web \u5f39\u51fa\u8bf7\u6c42\u6743\u9650\u7a97
\n

\u5f53\u524d sdk \u652f\u6301\u901a\u8fc7\u539f\u751f\u6216 web \u7aef\u6765\u5f39\u51fa\u8bf7\u6c42\u60ac\u6d6e\u6743\u9650\u5f39\u7a97\uff08\u9ed8\u8ba4\u4f7f\u7528\u539f\u751f\u5f39\u7a97\u65b9\u5f0f\uff09\u3002

\n

\u6ce8\u610f\u5982\u679c\u662f\u9009\u62e9\u4f7f\u7528 web \u7aef\u6765\u5f39\u7a97\u8bf7\u6c42\u60ac\u6d6e\u6743\u9650\u5f39\u7a97\uff0c\u9700\u8981 web \u7aef\u652f\u6301\u5bf9\u5e94\u7684\u4e8b\u4ef6\u3002

\n
PLVWebViewConfig cOnfig= new PLVWebViewConfig(); \nconfig.setUseWebRequestPermission(true);// \u4e3a true \u65f6 web \u5f39\u7a97\uff0cfalse \u4e3a\u4f7f\u7528\u539f\u751f\u5f39\u7a97 \nPLVWebViewDemoActivity.startWebViewDemoActivity(PLVURLInputActivity.this, config);\n
\n

1.2.2 \u76d1\u542c\u65b9\u6cd5 js \u4e8b\u4ef6

\n

SDK \u5185\u90e8\u5df2\u7ecf\u5b9a\u4e49\u4e86\u4e00\u90e8\u5206\u4e0e web \u7aef\u901a\u4fe1\u7684 js \u4e8b\u4ef6\uff0c\u8fd9\u4e9b\u901a\u4fe1\u4e8b\u4ef6\u53ef\u4ee5\u5728 demo \u5c42\u4e2d\u91cd\u5199\u67d0\u4e9b\u65b9\u6cd5\u8fdb\u884c\u76d1\u542c\u548c\u62e6\u622a\u5904\u7406\uff0c\u8fd9\u91cc\u4ee5\u76d1\u542c onShare \u4e8b\u4ef6\u8fdb\u884c\u4e3a\u4f8b\uff1a

\n
public class PLVWebViewDemoActivity extends PLVWebViewBaseActivity { \n @Override \n public void onShare() { \n // \u76d1\u542c\u5230 onShare \u4e8b\u4ef6\u7684\u5904\u7406 \n ... \n super.onShare(); \n } \n}\n
\n

\u53ef\u4ee5\u9009\u62e9\u9700\u8981\u76d1\u542c\u7684 js \u4e8b\u4ef6\u8fdb\u884c\u91cd\u5199\u5b9e\u73b0\u5bf9\u4e8b\u4ef6\u7684\u76d1\u542c\u3002

\n

\u6ce8\u610f:\u8fd9\u4e9b js \u901a\u4fe1\u4e8b\u4ef6\u90fd\u662f\u4e0e webview \u5173\u8054\uff0c\u5f00\u542f\u7cfb\u7edf\u5c0f\u7a97\u540e,\u5373\u4f7f Activity \u88ab\u9500\u6bc1\u4f9d\u7136\u80fd\u6536\u5230\u6765\u81ea web \u7aef\u53d1\u9001\u7684\u6d88\u606f\uff0c\u89e6\u53d1\u8fd9\u4e9b\u65b9\u6cd5\uff0c\u6240\u4ee5\u91cd\u5199\u8fd9\u4e9b\u65b9\u6cd5\u65f6\uff0c\u5c3d\u91cf\u907f\u514d\u505a\u4e0e Activity \u751f\u547d\u5468\u671f\u5173\u8054\u7684\u64cd\u4f5c

\n

\u5141\u8bb8\u7684\u76d1\u542c js \u4e8b\u4ef6

\n

\u5f53\u524d\u652f\u6301\u901a\u8fc7\u91cd\u5199\u65b9\u6cd5\u6765\u76d1\u542c\u4e8b\u4ef6\uff1b

\n

\u6709\u4ee5\u4e0b\u8fd9\u4e9b\u65b9\u6cd5\uff1a

\n
 /**\n * \u70b9\u51fb\u5546\u54c1\uff0c\u5c06\u5207\u6362\u5230\u5c0f\u7a97\u65f6\u4f1a\u89e6\u53d1\u8be5\u56de\u8c03\n *\n * @param width \u5c0f\u7a97\u7684\u5bbd\n * @param height \u5c0f\u7a97\u7684\u9ad8\n * @param newPage \u662f\u5426\u6253\u5f00\u65b0\u7684\u4e00\u9875\n * @param link \u6253\u5f00\u65b0\u7684\u4e00\u9875\u52a0\u8f7d\u7684 url\n * @param data \u5176\u4ed6\u66f4\u591a\u6570\u636e\uff0c\u5f00\u53d1\u8005\u53ef\u6839\u636e\u9700\u8981\u81ea\u5b9a\u4e49\u5b9e\u73b0\u903b\u8f91\uff0c\u6570\u636e\u4e3a json \u683c\u5f0f\n */\n void changeToWindowForProduct(int width, int height, boolean newPage, String link, String data);\n\n /**\n * \u7528\u6237\u4e3b\u52a8\u8c03\u7528\u5207\u6362\u5230\u5c0f\u7a97\u7684\u65b9\u6cd5\uff0c\u5728\u5207\u6362\u524d\u4f1a\u89e6\u53d1\u8be5\u56de\u8c03\n *\n * @param width \u5c0f\u7a97\u7684\u5bbd\n * @param height \u5c0f\u7a97\u7684\u9ad8\n */\n void changeToWindowForUser(int width, int height);\n\n /**\n * \u70b9\u51fb\u5c0f\u7a97\u533a\u57df\uff0c\u4ece\u5c0f\u7a97\u4e2d\u6062\u590d\u5230\u9875\u9762\u89e6\u53d1\u8be5\u56de\u8c03\n **/\n void changeToNormal();\n\n /**\n * \u70b9\u51fb\u5c0f\u7a97\u5173\u95ed\u6309\u94ae\uff0c\u5173\u95ed\u5c0f\u7a97\u89e6\u53d1\u8be5\u56de\u8c03\n **/\n void closeWindow();\n\n /**\n * \u70b9\u51fb\u8fd4\u56de\u4e8b\u4ef6\n */\n void onGobackPressed();\n\n /**\n * \u6a2a\u7f6e\u5c4f\u5e55\u4e8b\u4ef6\n */\n void onLandScreen();\n\n /**\n * \u7ad6\u76f4\u5c4f\u5e55\u4e8b\u4ef6\n */\n void onPortraitScreen();\n\n /**\n * \u5206\u4eab\u4e8b\u4ef6\n */\n void onShare();\n\n /**\n * \u6536\u85cf\u4e8b\u4ef6\n */\n void onCollect();\n\n /**\n * \u9690\u85cf\u72b6\u6001\u680f\uff0c\u8fdb\u5165\u6c89\u6d78\u6a21\u5f0f\n */\n void hideNavigationBar();\n\n /**\n * \u663e\u793a\u72b6\u6001\u680f\uff0c\u9000\u51fa\u6c89\u6d78\u6a21\u5f0f\n */\n void showNavigationBar();\n\n /**\n * \u6253\u5f00\u60ac\u6d6e\u7a97\u6743\u9650\u9875\u9762\n */\n void requestFloatWindowPermissionByWeb();\n\n /**\n * \u53d1\u9001\u5f53\u524d\u5c0f\u7a97\u7684\u6253\u5f00\u72b6\u6001\u7ed9\u524d\u7aef\n */\n void getFloatWindowStatus();\n\n /**\n * \u83b7\u53d6\u5f53\u524d\u7684\u7f51\u8def\u72b6\u6001\n */\n void getCurrentNetworkStatus();\n\n /**\n * \u8bbe\u7f6e\u662f\u5426\u5f00\u542f\u81ea\u52a8\u60ac\u6d6e\u7a97\u6743\u9650\n * @param enable true \u4e3a\u6253\u5f00\uff0cfalse \u4e3a\u7518\u6bd4\n */\n void setEnableBackground(boolean enable);\n\n /**\n * \u83b7\u53d6\u662f\u5426\u5f00\u542f\u4e86\u81ea\u52a8\u60ac\u6d6e\u7a97\u7684\u6743\u9650\n */\n void getEnableBackground();\n\n /**\n * \u5904\u7406\u5176\u4ed6 event\n */\n void handleOtherEvent(String event);\n
\n

1.2.3 \u6ce8\u518c\u65b0\u7684 js \u901a\u4fe1\u4e8b\u4ef6

\n

SDK \u652f\u6301\u6ce8\u518c\u81ea\u5b9a\u4e49 js \u4e8b\u4ef6\uff0c\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u7684\u65b9\u5f0f\u6765\u6ce8\u518c\u81ea\u5b9a\u4e49 js \u4e8b\u4ef6\uff0c\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a

\n
@Override\nprotected void initHandleForDemo() {\n //\u76d1\u542c\u6765\u81ea web \u7aef\u53d1\u9001\u4e8b\u4ef6\n floatableLayout.getWebView().registerHandler(\"\u76d1\u542c\u4e8b\u4ef6\", new BridgeHandler() {\n @Override\n public void handler(String s, CallBackFunction callBackFunction) {}\n });\n \n //\u5411 web \u7aef\u53d1\u9001\u5bf9\u5e94\u4e8b\u4ef6\u548c\u6d88\u606f\n floatableLayout.getWebView().callHandler(\"\u53d1\u9001\u4e8b\u4ef6\", \"\u53d1\u9001\u6d88\u606f\", new CallBackFunction() {\n @Override\n public void onCallBack(String s\n }\n });\n}\n
\n

\u6ce8\u610f\uff1a\u6ce8\u518c\u65b0\u7684 js \u4e8b\u4ef6\u65f6\u4e0d\u4ec5\u9700\u8981\u539f\u751f\u7aef\u505a\u76f8\u5e94\u7684\u64cd\u4f5c\uff0c\u8fd8\u9700\u8981 web \u7aef\u6709\u6ce8\u518c\u5bf9\u5e94\u7684\u4e8b\u4ef6\uff0c\u5426\u5219\u662f\u539f\u751f\u7aef\u662f\u4e0d\u4f1a\u63a5\u6536\u5230\u5bf9\u5e94\u7684\u4e8b\u4ef6\u6d88\u606f

\n

1.3\u00a0\u66f4\u6362 web-native \u901a\u4fe1\u89c4\u5219\u6ce8\u610f\u4e8b\u9879

\n

1.3.1 \u8bf4\u660e

\n

\u5f53\u524d SDK \u5185\u90e8\u662f\u901a\u8fc7 Jsbridge \u8be5\u5e93\u6765\u5b9e\u73b0 web \u7aef\u4e0e\u539f\u751f\u7aef\u7684\u901a\u4fe1\uff0cJsbridge \u4e2d\u5b9a\u4e49\u4e86 web \u7aef\u4e0e\u539f\u751f\u7684\u901a\u4fe1\u89c4\u5219\uff0c\u5982\u679c\u96c6\u6210\u9879\u76ee\u662f\u6ca1\u6709\u5236\u5b9a\u6307\u5b9a\u7684 web-native \u901a\u4fe1\u89c4\u5219\uff0c\u90a3\u4e48\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528 SDK \u7684\u901a\u4fe1\u89c4\u5219\u5373\u53ef\uff0c\u65e0\u9700\u5176\u4f59\u6539\u52a8\u3002

\n

\u5982\u679c\u96c6\u6210\u9879\u76ee\u4e2d\u6709\u5b9a\u5236\u6307\u5b9a\u7684 web-native \u901a\u4fe1\u89c4\u5219\uff0c\u53ef\u4ee5\u53c2\u8003\u4e0b\u9762\u7684\u65b9\u5f0f\u8fdb\u884c\u4fee\u6539\u3002

\n

\u65e0\u8bba\u662f\u4f7f\u7528\u54ea\u4e00\u79cd\u901a\u4fe1\u89c4\u5219\uff0c\u5173\u952e\u5728\u4e8e\u539f\u751f\u7aef\u53d1\u9001/\u63a5\u6536 web \u7aef\u6d88\u606f\uff0cweb \u7aef\u53d1\u9001/\u63a5\u6536\u539f\u751f\u7aef\u6d88\u606f\uff0c\u6240\u4ee5\u5f53\u9700\u8981\u66f4\u6362 SDK \u5185\u90e8\u7684 web-native \u901a\u4fe1\u89c4\u5219\u4ec5\u5173\u6ce8\u4e0a\u8ff0\u7684\u4e24\u70b9\u5373\u53ef\u3002

\n

1.3.2 \u66f4\u6362 native \u7aef\u901a\u4fe1\u89c4\u5219

\n

\u56e0\u4e3a sdk \u5185\u90e8\u662f\u4f9d\u8d56\u4e8e jsbridge \u8be5\u6a21\u5757\u5b9e\u73b0 web-native \u901a\u4fe1\uff0c\u5f53\u9700\u8981\u66f4\u6362\u901a\u4fe1\u89c4\u5219\u65f6\uff0c\u53ef\u4ee5\u9009\u62e9\u4e0d\u4f9d\u8d56\u8be5\u6a21\u5757\u3002

\n

1.3.3 \u66f4\u6539 PLVBaseWebView \u7ee7\u627f\u7c7b

\n
public class PLVBaseWebView extends BridgeWebView {\n ....\n}\n
\n

\u53ef\u5c06 PLVBaseWebView \u7ee7\u627f\u7684 BridgeWebView \u66f4\u6362\u4e3a\u96c6\u6210\u9879\u76ee\u4e2d\u6307\u5b9a\u901a\u4fe1\u89c4\u5219\u7684 webview \u3002

\n

1.3.4 \u66f4\u6539 WebViewClient

\n

WebViewClient \u662f\u5b9e\u73b0\u539f\u751f\u7aef\u63a5\u6536 web \u7aef\u6d88\u606f\u7684\u5173\u952e\uff0c\u4e5f\u662f\u5b9a\u5236\u4fee\u6539 webview \u7684\u6838\u5fc3\u90e8\u4efd\uff0c\u6240\u4ee5\u5728\u66f4\u6362\u901a\u4fe1\u89c4\u5219\u65f6\u4e5f\u9700\u8981\u66f4\u6362 WebViewClient

\n
//\u66ff\u6362\u81ea\u5df1\u9700\u8981\u7528\u5230\u7684 WebViewClient \nwebView.setWebViewClient(webviewClient);\n
\n

\u53ef\u4ee5\u901a\u8fc7 setWebViewClient(new WebViewClient() \u65b9\u6cd5\u4e3a webview \u8bbe\u7f6e\u6307\u5b9a WebViewclient \u3002

\n

1.3.5 \u66f4\u6539\u539f\u751f\u7aef\u53d1\u9001/\u63a5\u6536 web \u7aef\u6d88\u606f\u7684\u65b9\u6cd5

\n
    \n
  1. \u66f4\u6362\u53d1\u9001\u6d88\u606f\u65b9\u5f0f
  2. \n
\n
public void callMessage(String type, String message) {\n //\u5f53\u4f7f\u7528\u7684\u65b0\u7684 web-native \u89c4\u5219\u65f6\uff0c\u53ef\u4ee5\u5c06\u4e0b\u9762\u7684\u4ee3\u7801\u4fee\u6539\u4e3a webview \u4f7f\u7528\u65b0\u89c4\u5219\u53d1\u9001\u6d88\u606f\u65f6\u7684\u4ee3\u7801\n webview.callHandler(type, message, new CallBackFunction() {\n @Override\n public void onCallBack(String s) {\n ...\n }\n });\n}\n
\n

\u5f53\u524d SDK \u5185\u90e8\u65f6\u901a\u8fc7 webview.callHandler()\u65b9\u6cd5\u6765\u5b9e\u73b0\u6d88\u606f\u7684\u53d1\u9001\uff0c\u5f53\u66f4\u6362\u65b0\u7684\u901a\u4fe1\u89c4\u5219\u65f6\uff0c\u53ef\u4ee5\u5c06\u8fd9\u4e2a webview.callHandler()\u65b9\u6cd5\u66ff\u6362\u4e3a\u65b0\u89c4\u5219\u4e2d\u5bf9\u5e94\u539f\u751f\u7aef\u53d1\u9001\u6d88\u606f\u7684\u65b9\u6cd5\u3002

\n
    \n
  1. \u66f4\u6362\u63a5\u6536 web \u7aef\u6d88\u606f
  2. \n
\n
webview.registerHandler(\"xxx\", new BridgeHandler() {\n @Override\n public void handler(String s, CallBackFunction callBackFunction) {\n ... \n }\n});\n
\n

\u5f53\u524d SDK \u5185\u90e8\u662f\u901a\u8fc7 webview.registerHandler()\u65b9\u6cd5\u6765\u76d1\u542c web \u7aef\u53d1\u9001\u7684\u6d88\u606f\uff0c\u5f53\u66f4\u6362\u65b0\u7684\u901a\u4fe1\u89c4\u5219\u65f6\uff0c\u53ef\u4ee5\u5c06\u8fd9\u4e2a webview.registerHandler()\u65b9\u6cd5\u66ff\u6362\u4e3a\u65b0\u89c4\u5219\u4e2d\u5bf9\u5e94\u539f\u751f\u7aef\u63a5\u6536 web \u6d88\u606f\u7684\u65b9\u6cd5\u3002

\n

1.3.6 \u66f4\u6362 web \u7aef\u901a\u4fe1\u89c4\u5219

\n

web-native \u901a\u4fe1\u89c4\u5219\u662f\u7531 web \u7aef\u548c\u539f\u751f\u7aef\u4e24\u7aef\u5b9a\u5236\u7684\uff0c\u6240\u4ee5\u5f53\u66f4\u6362 web-native \u901a\u4fe1\u89c4\u5219\u4e0d\u4ec5\u9700\u8981\u539f\u751f\u7aef\u66f4\u6362\uff0cweb \u7aef\u4e5f\u9700\u8981\u8fdb\u884c\u66f4\u6362\u3002

\n

\u6ce8\u610f\u4e8b\u9879

\n

\u5f53\u524d\u9700\u8981\u901a\u4fe1\u7684 web \u9875\u9762 \u4e0e \u66f4\u6362\u901a\u4fe1\u89c4\u5219\u540e\u7684\u539f\u751f\u7aef \u6240\u4f7f\u7528\u7684\u901a\u4fe1\u89c4\u5219\u662f\u5426\u662f\u5bf9\u5e94\uff0c\u5982\u679c\u662f\u5bf9\u5e94\u7684\u60c5\u51b5\u4e0b\u65e0\u9700\u505a\u5176\u4ed6\u66f4\u66ff\u3002

\n

\u5982\u679c\u9700\u8981\u901a\u4fe1\u7684 web \u9875\u9762\u4e0e \u66f4\u6362\u901a\u4fe1\u89c4\u5219\u540e\u7684\u539f\u751f\u7aef \u6240\u4f7f\u7528\u7684\u4e0d\u5bf9\u5e94\uff0c\u90a3\u4e48\u5c31\u9700\u8981\u53bb\u66f4\u66ff web \u7aef\u7684\u901a\u4fe1\u89c4\u5219\u3002

\n

\u5982 web \u7aef\u9875\u9762\u9700\u8981\u4f7f\u7528\u4fdd\u5229\u5a01\u7684 web \u9875\u9762\uff08\u5f53\u524d\u4fdd\u5229\u5a01 web \u9875\u9762\u4e0e sdk \u5185\u90e8\u6240\u4f7f\u7528\u7684\u901a\u4fe1\u89c4\u5219\u4e00\u81f4\uff0c\u5f53\u539f\u751f\u7aef\u5207\u6362\u901a\u4fe1\u89c4\u5219\uff0c\u90a3\u4e48 web \u7aef\u9875\u9762\u4e5f\u9700\u8981\u66f4\u6362\u5bf9\u5e94\u901a\u4fe1\u89c4\u5219\uff09

\n

1.3.7 \u66f4\u6362 web \u7aef\u53d1\u9001/\u63a5\u6536\u65b9\u6cd5

\n

1.\u66f4\u6539 web \u7aef\u53d1\u9001\u6d88\u606f\u65b9\u5f0f

\n
 window.bridge.callHandler(\n 'callAppEvent', message,\n function(responseData) {\n //\u53d1\u9001\u6d88\u606f\n ....\n }\n );\n
\n

\u5f53\u524d SDK \u5185\u90e8\u4e0e Web \u7aef\u5bf9\u5e94\u7684\u901a\u4fe1\u89c4\u5219\u662f\u901a\u8fc7 bridge.callHandler()\u65b9\u6cd5\u6765\u8fdb\u884c\u53d1\u9001\u6d88\u606f\uff0c\u5f53\u66ff\u6362\u65b0\u7684\u901a\u4fe1\u89c4\u5219\u540e\uff0c\u53ef\u4ee5\u4f7f\u7528\u65b0\u7684\u53d1\u9001\u65b9\u5f0f\u6765\u53d6\u4ee3\u8fd9\u4e2a bridge.callHandler()\u65b9\u6cd5

\n

2.\u66f4\u6539 web \u7aef\u63a5\u6536\u6d88\u606f\u65b9\u5f0f

\n
// \u76d1\u542c\u6765\u81ea xxx \u4e8b\u4ef6\u7684\u6d88\u606f\nbridge.registerHandler(\"xxx\", function(data, responseCallback) {\n document.getElementById(\"show\").innerHTML = (data);\n});\n
\n

\u5f53\u524d SDK \u5185\u90e8\u4e0e Web \u7aef\u5bf9\u5e94\u7684\u901a\u4fe1\u89c4\u5219\u662f\u901a\u8fc7 bridge.registerHandler()\u65b9\u6cd5\u6765\u63a5\u6536\u6d88\u606f\uff0c\u5f53\u66ff\u6362\u65b0\u7684\u901a\u4fe1\u89c4\u5219\u540e\uff0c\u53ef\u4ee5\u4f7f\u7528\u65b0\u7684\u53d1\u9001\u65b9\u5f0f\u6765\u53d6\u4ee3\u8fd9\u4e2a bridge.registerHandler()\u65b9\u6cd5

\n

\u4e8c\u3001iOS \u5bf9\u63a5\u8bf4\u660e

\n

2.1 \u96c6\u6210\u7b80\u4ecb

\n

2.1.1 \u9879\u76ee\u67b6\u6784\u56fe

\n

2.1.2 \u8fd0\u884c\u73af\u5883\u8981\u6c42

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\u540d\u79f0\u00b7\u8981\u6c42
iOS \u7cfb\u7edf9.0+
CocoaPods1.11.3+
Xcode11.0+

2.2 \u5feb\u901f\u96c6\u6210

\n

2.2.1 \u9879\u76ee\u914d\u7f6e

\n

\u914d\u7f6e\u652f\u6301\u7cfb\u7edf\u7248\u672c

\n

\u6253\u5f00\u9879\u76ee\u7684 PROJECT - Deployment Target - iOS Deployment Target \u6539\u4e3a 9.0 \u6216\u66f4\u9ad8\u3002

\n

\u6253\u5f00\u9879\u76ee\u7684 TARGETS - General - Deployment Info \uff0c\u628a iOS \u7cfb\u7edf\u6539\u4e3a 9.0 \u6216\u66f4\u9ad8\u3002

\n

2.2.2 \u914d\u7f6e App Transport Security (ATS)

\n

\u6253\u5f00\u9879\u76ee\u7684\u00a0info.plist\u00a0\u6587\u4ef6\uff0c\u6dfb\u52a0\u5982\u4e0b\u5185\u5bb9\uff1a

\n
<key>NSAppTransportSecurity</key>\n<dict>\n <key>NSAllowsArbitraryLoads</key>\n <true/>\n <key>NSAllowsArbitraryLoadsInWebContent</key>\n <true/>\n</dict>\n
\n

2.2.3 \u914d\u7f6e\u8bbe\u5907\u65cb\u8f6c

\n

\u64ad\u653e\u5668\u652f\u6301\u5168\u5c4f\u64ad\u653e\uff0c\u9700\u8981\u5728 TARGETS - General - Deployment Info \u4e2d\uff0c\u52fe\u9009\u652f\u6301\u7684\u6a2a\u5c4f\u65cb\u8f6c\u65b9\u5411\u3002

\n

2.2.4 \u914d\u7f6e\u540e\u53f0\u64ad\u653e\u548c\u753b\u4e2d\u753b

\n

\u6253\u5f00\u9879\u76ee\u7684 TARGETS - Signings & Capabilities \uff0c\u70b9\u51fb + Capability \uff0c\u9009\u62e9 Background Modes \uff0c\u52fe\u9009 \u2018Audio, AirPlay, and Picture in Picture\u2019\u3002

\n

2.3 \u96c6\u6210 SDK

\n

2.3.1 Pod \u65b9\u5f0f\u96c6\u6210

\n

\u96c6\u6210 PLVWebViewSDK

\n

\u5728 Podfile \u6587\u4ef6\u4e2d\uff0c\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9\uff1a

\n
pod 'PLVWebViewSDK', '~> 1.0.0'\n
\n

\u5728\u7ec8\u7aef\u6267\u884c\u00a0pod install

\n

\u96c6\u6210\u7cfb\u7edf\u5c0f\u7a97

\n

\u5982\u679c\u9700\u8981\u4f7f\u7528\u7cfb\u7edf\u5c0f\u7a97\u529f\u80fd\uff0c\u5219\u9700\u8981\u5728 Podfile \u6587\u4ef6\u4e2d\u53e6\u5916\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9

\n
# \u5305\u542b\u7cfb\u7edf\u753b\u4e2d\u753b -- \u5982\u679c\u4e0d\u4f7f\u7528\u7cfb\u7edf\u5c0f\u7a97 \u5219\u4e0d\u9700\u8981\u4e0b\u9762\u914d\u7f6e\npod 'PLVAliHttpDNS', '~>1.10.0'\npod 'PLVFoundationSDK', '1.10.6', :subspecs => ['BaseUtils', 'NetworkUtils', 'ErrorCode', 'LogReporter', 'ConsoleLogger', 'Reachability', 'SafeModel', 'ProgressHUD']\npod 'PLVBusinessSDK', '1.10.4', :subspecs => ['BaseBSH']\npod 'PLVLiveScenesSDK', '1.10.6', :subspecs => ['Base', 'LogReporter', 'ConsoleLogger', 'ErrorManager', 'Network', 'Player', 'BasePlayer', 'LivePlayer', 'LivePlaybackPlayer', 'PictureInPicture']\n
\n

\u5e76\u5728\u7ec8\u7aef\u6267\u884c\u00a0pod install\uff0c\u5e76\u4e14\u5c06\u5bf9\u5e94\u7684\u00a0PLVLiveScenesSDK \u3001PLVBusinessSDK\u00a0\u8fdb\u884c\u66ff\u6362\u3002

\n

2.3.2 \u79bb\u7ebf\u5305\u65b9\u5f0f\u96c6\u6210

\n

\u96c6\u6210 PLVWebViewSDK

\n

\u5c06 PLVWebViewSDK.framework \u5e93\u6dfb\u52a0\u5230\u81ea\u5df1\u7684\u9879\u76ee\u4e2d\u3002\u5982\u679c\u662f\u4f7f\u7528\u6e90\u7801\u7684\u65b9\u5f0f\u96c6\u6210\uff0c\u5219\u9700\u8981\u5c06 PLVWebViewSDK \u6587\u4ef6\u6574\u4e2a\u6dfb\u52a0\u5230\u81ea\u5df1\u7684\u9879\u76ee\u5373\u53ef\u3002

\n

\u96c6\u6210\u7cfb\u7edf\u5c0f\u7a97

\n

1.\u5982\u679c\u9879\u76ee\u4f7f\u7528\u7cfb\u7edf\u5c0f\u7a97\u529f\u80fd\u5219\u9700\u8981\u5c06\u4ee5\u4e0b\u5e93\u6dfb\u52a0\u5230\u9879\u76ee\u4e2d

\n
PLVAliHttpDNS \u3001PLVBusinessSDK \u3001PLVFoundationSDK \u3001PLVIJKPlayer \u3001PLVLiveScenesSDK\n
\n

2.\u5728 General => Frameworks \uff0cLibraries \uff0cand Embedded Content \u4e2d\u79fb\u9664\u5df2\u6dfb\u52a0\u7684 PLVFoundationSDK.framework \u3001PLVLiveScenesSDK.framework \u3001PLVBusinessSDK.framework \u5e93\uff0c\u5e76\u6dfb\u52a0\u7cfb\u7edf\u5e93 libresolv.tbd \u3002

\n

3.\u8bbe\u7f6e PLVIJKPlayer \u4e3a Embed & Sign

\n

4.Build Settings \uff0cOther Linker Flags \u4e2d\u6dfb\u52a0 -ObjC \uff0c\u5982\u679c\u9879\u76ee\u5df2\u914d\u7f6e\u6709\uff0c\u5219\u4e0d\u9700\u8981\u91cd\u590d\u6dfb\u52a0

\n

5.\u8fd0\u884c\u62a5\u9519

\n

\u5982\u679c\u6a21\u62df\u5668\u8fd0\u884c\u62a5\u9519\u9700\u8981\u5728 Build Settings \u4e2d\u8bbe\u7f6e Excluded Architecture => Any iOS Simulator SDK \u4e3a arm64

\n

\u5982\u679c\u8fd0\u884c\u62a5\u9519

\n
Building for iOS Simulator, but the linked and embedded framework '***' was built for iOS + tvOS Simulator\n
\n

\u53ef\u5728 Build Settings \u4e2d \u8bbe\u7f6e VALIDATE_WORKSPACE \u4e3a YES \u5373\u53ef\u3002

\n

2.4 WebView \u63a5\u5165

\n

\u521b\u5efa\u60f3\u8981\u5c55\u793a WebView \u7684\u63a7\u5236\u5668\u9875\u9762\u00a0DemoViewController\u00a0\u7ee7\u627f\u4e8ePLVWebViewBaseViewController\uff0c\u5e76\u901a\u8fc7\u521d\u59cb\u5316\u65b9\u6cd5\u00a0-initWithConfig:\u521b\u5efa\u63a7\u5236\u5668\u9875\u9762\u3002\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a

\n
// PLVWebViewDemoViewController.h\n\n#import <PLVWebViewSDK/PLVWebViewSDK.h>\n\n@interface PLVWebViewDemoViewController : PLVWebViewBaseViewController\n\n@end\n
\n

\u521d\u59cb\u5316\u65f6\u53ef\u901a\u8fc7\u91cd\u5199\u00a0initHandleForDemo\u00a0\u8fdb\u884c\u81ea\u5b9a\u4e49\u914d\u7f6e\uff0c\u540c\u65f6\u53ef\u4ee5\u5bf9 Bridge \u4e8b\u4ef6\u8fdb\u884c\u81ea\u5b9a\u4e49\u5904\u7406\u3002\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a

\n
// PLVWebViewDemoViewController.m\n \n@implementation PLVWebViewDemoViewController\n\n#pragma mark - [ Override ]\n\n- (void)viewDidLoad {\n [super viewDidLoad];\n \n}\n\n/// \u521d\u59cb\u5316\u65f6\uff0c\u53ef\u4ee5\u8fdb\u884c\u7684\u81ea\u5b9a\u4e49\u914d\u7f6e\n//- (void)initHandleForDemo {\n//\n//}\n\n#pragma mark - [ Delegate ]\n#pragma mark PLVFloatableWebViewBridgeDelegate\n/// \u5982\u9700\u8981\u76d1\u542c js \u56de\u8c03\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u901a\u8fc7 Delegate \u4e8b\u4ef6\u8fdb\u884c\u76f8\u5e94\u7684\u5904\u7406\uff0c\u4f8b\u5982 webviewBridgeShare \u6d88\u606f\n//- (void)webviewBridgeShare:(PLVFloatableWebViewBridge *)bridge {\n//\n//}\n\n@end\n
\n

\u521b\u5efa\u3001\u914d\u7f6e\u3001\u6253\u5f00\u76f4\u64ad\u9875\u9762\u63a7\u5236\u5668

\n
PLVWebViewConfig *cOnfig= [[PLVWebViewConfig alloc] init];\nconfig.urlString = urlString;\nconfig.allowFloatingWindow = YES;\nconfig.isSystemFloatingWindow = NO;\nconfig.userAgent = self.uaTextView.text;\nconfig.enableAutoFloatWindow = YES;\n \nPLVWebViewDemoViewController *webVC = [[PLVWebViewDemoViewController alloc] initWithConfig:config];\n[self.navigationController pushViewController:webVC animated:YES];\n
\n

2.5 \u9ad8\u7ea7\u529f\u80fd

\n

2.5.1 WebView \u914d\u7f6e

\n

\u521b\u5efa PLVWebViewBaseViewController \u65f6\u9700\u8981\u6839\u636e PLVWebViewConfig \u914d\u7f6e\u6765\u8fdb\u884c\u521d\u59cb\u5316\u3002

\n
PLVWebViewConfig *cOnfig= [[PLVWebViewConfig alloc] init];\nconfig.urlString = @\"\";\nconfig.allowFloatingWindow = YES;\nconfig.isSystemFloatingWindow = NO;\nconfig.userAgent = @\"\";\nconfig.enableAutoFloatWindow = YES; \nPLVWebViewDemoViewController *floatingWebVC = [[PLVWebViewDemoViewController alloc] initWithConfig:config];\n
\n\n

2.5.2 \u5e94\u7528\u5185\u5c0f\u7a97\u914d\u7f6e

\n

\u6211\u4eec\u8fd8\u53ef\u4ee5\u5bf9\u6d6e\u7a97\u7684\u5927\u5c0f\u3001\u9ed8\u8ba4\u4f4d\u7f6e\u3001\u4ee5\u53ca\u6837\u5f0f\u8fdb\u884c\u914d\u7f6e\u4fee\u6539\uff1a

\n
// \u914d\u7f6e\u6d6e\u7a97\u5927\u5c0f\n[[PLVFloatWindowManager sharedManager] setFloatingWindowSize:size];\n// \u914d\u7f6e\u6d6e\u7a97\u521d\u59cb\u4f4d\u7f6e\n[[PLVFloatWindowManager sharedManager] setFloatingWindowLocation:point];\n// \u5e94\u7528\u5185\u5c0f\u7a97\u6837\u5f0f\u4fee\u6539\nUIView *appWindowView = [PLVFloatWindowManager sharedManager].floatingWindow;\nappWindowView.layer.cornerRadius = 8.0f;\nappWindowView.layer.masksToBounds = YES;\n
\n

\u5176\u4e2d\uff0c\u8c03\u7528\u00a0-moveContentViewToWindow:size:\u00a0\u65b9\u6cd5\u4e3b\u52a8\u5524\u8d77\u7684\u6d6e\u7a97\uff0c\u9ed8\u8ba4\u5bbd\u5ea6\u4e3a\u5c4f\u5e55\u7684 0.3 \u500d\uff0c\u5bbd\u9ad8\u6bd4 16:9 \u3002\u901a\u8fc7\u4fdd\u5229\u5a01\u7684\u7f51\u9875\u5524\u8d77\u6d6e\u7a97\uff0c\u6d6e\u7a97\u5927\u5c0f\u7531\u7f51\u9875\u544a\u77e5\u3002\u521d\u59cb\u4f4d\u7f6e\u662f\u6307\u6d6e\u7a97\u53f3\u4e0b\u89d2\u8ddd\u79bb\u5c4f\u5e55\u53f3\u4e0b\u89d2\u7684\u76f8\u5bf9\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a(-10, -100)\uff0c \u8868\u793a\u60ac\u6d6e\u7a97\u53f3\u8fb9\u6cbf\u8ddd\u79bb\u5c4f\u5e55\u53f3\u8fb9\u6cbf 10pt \uff0c\u4e0b\u8fb9\u6cbf\u8ddd\u79bb\u5c4f\u5e55\u4e0b\u8fb9\u6cbf 100pt \u3002

\n

2.5.3 \u753b\u4e2d\u753b\u914d\u7f6e

\n
    \n
  1. \n

    \u5982\u679c\u8981\u4f7f\u7528\u753b\u4e2d\u753b\u529f\u80fd\uff0c\u9996\u5148\u9700\u8981\u5728 Podfile \u6587\u4ef6\u4e2d \u6dfb\u52a0\u652f\u6301\u753b\u4e2d\u753b\u7684 SDK \uff0c\u7136\u540e\u6267\u884c\u00a0pod install\uff1b

    \n
    # \u5305\u542b\u7cfb\u7edf\u753b\u4e2d\u753b -- \u5982\u679c\u4e0d\u4f7f\u7528\u7cfb\u7edf\u5c0f\u7a97 \u5219\u4e0d\u9700\u8981\u4e0b\u9762\u914d\u7f6e\npod 'PLVAliHttpDNS', '~>1.10.0'\npod 'PLVFoundationSDK', '1.10.6', :subspecs => ['BaseUtils', 'NetworkUtils', 'ErrorCode', 'LogReporter', 'ConsoleLogger', 'Reachability', 'SafeModel', 'ProgressHUD']\npod 'PLVBusinessSDK', '1.10.4', :subspecs => ['BaseBSH']\npod 'PLVLiveScenesSDK', '1.10.6', :subspecs => ['Base', 'LogReporter', 'ConsoleLogger', 'ErrorManager', 'Network', 'Player', 'BasePlayer', 'LivePlayer', 'LivePlaybackPlayer', 'PictureInPicture']\n
    \n
  2. \n
  3. \n

    \u66ff\u6362\u5bf9\u5e94\u7684\u79bb\u7ebf\u5305

    \n
  4. \n
\n

\u7528\u63d0\u4f9b\u7684\u79bb\u7ebf\u5305PLVLiveScenesSDK \u3001PLVBusinessSDK\u00a0\u5c06 Pods \u6587\u4ef6\u5939\u4e0b\u5bf9\u5e94\u7684 SDK \u8fdb\u884c\u66ff\u6362\u3002

\n

2.5.4 UA \u548c\u767d\u540d\u5355\u914d\u7f6e

\n

\u5f53\u5f00\u542f\u4e86\u00a0enabelWhiteList\u00a0\u540e\uff0c\u53ea\u6709\u6dfb\u52a0\u4e86\u57df\u540d\u767d\u540d\u5355\u7684\u94fe\u63a5\u624d\u4f1a\u652f\u6301\u539f\u751f\u4e0e\u524d\u7aef\u7684\u901a\u4fe1\uff0c\u624d\u652f\u6301\u5c0f\u7a97\u7684\u529f\u80fd\u3002

\n
[PLVUAConfigManager sharedManager].enabelWhiteList = YES;\n[[PLVUAConfigManager sharedManager] addHostWhitelist:@[@\"live.polyv.cn\"]];\n
\n

\u540c\u65f6\u652f\u6301 \u81ea\u5b9a\u4e49\u914d\u7f6e UA

\n
[[PLVUAConfigManager sharedManager] addCustomUserAgent:@\"\"];\n
\n

2.5.5 \u76d1\u542c\u65b9\u6cd5 js \u4e8b\u4ef6

\n

\u5728 SDK \u5185\u90e8\u5df2\u7ecf\u5bf9\u4e00\u4e9b\u4e8b\u4ef6\u8fdb\u884c\u4e86\u5904\u7406\uff0c\u5982\u679c\u60f3\u8981\u81ea\u5b9a\u4e49\u5904\u7406\u67d0\u4e9b\u4e8b\u4ef6\u53ef\u4ee5\u5728 demo \u4e2d\u8fdb\u884c\u76d1\u542c\u62e6\u622a\u5904\u7406\u3002\u793a\u4f8b\u5982\u4e0b\uff1a

\n
#pragma mark - [ Delegate ]\n#pragma mark PLVFloatableWebViewBridgeDelegate\n/// \u5982\u9700\u8981\u76d1\u542c js \u56de\u8c03\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u901a\u8fc7 Delegate \u4e8b\u4ef6\u8fdb\u884c\u76f8\u5e94\u7684\u5904\u7406\uff0c\u4f8b\u5982 webviewBridgeShare \u6d88\u606f\n- (void)webviewBridgeShare:(PLVFloatableWebViewBridge *)bridge {\n\n}\n
\n

2.5.6 \u6ce8\u518c\u548c\u8c03\u7528\u81ea\u5b9a js \u4e8b\u4ef6

\n

\u53ef\u4ee5\u901a\u8fc7 Demo \u5c42\u6ce8\u518c\u548c\u8c03\u7528\u81ea\u5b9a\u4e49\u4e8b\u4ef6\uff0c\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a

\n
- (void)initHandleForDemo {\n [self.contentAreaView.mainWebView.bridge registerHandler:@\"\" handler:^(id _Nonnull data, PLVWVJBResponseCallback _Nonnull responseCallback) {\n \n }];\n [self.contentAreaView.mainWebView.bridge callHandler:@\"\" data:nil responseCallback:^(id _Nonnull responseData) {\n \n }];\n}\n
\n

2 .6 \u66f4\u6362 web-native \u901a\u4fe1\u89c4\u5219\u6ce8\u610f\u4e8b\u9879

\n

\u672c\u9879\u76ee\u4e2d\u4f7f\u7528\u7684\u662f\u5f00\u6e90\u5e93 WebViewJavascriptBridge \u6765\u5b9e\u73b0 web \u548c native \u4e4b\u95f4\u7684\u901a\u4fe1\u3002\u5982\u679c\u63a5\u5165\u7684\u9879\u76ee\u4e2d\u6ca1\u6709\u7528\u5230 web-native \u901a\u4fe1\uff0c\u5219\u4e0d\u9700\u8981\u505a\u4efb\u4f55\u8c03\u6574\u3002\u5982\u679c\u63a5\u5165\u7684\u9879\u76ee\u4e2d\u4e5f\u7528\u5230 web-native \u901a\u4fe1\uff0c\u5219\u53ef\u4ee5\u53c2\u8003\u4e0b\u9762\u7684\u65b9\u5f0f\u8fdb\u884c\u4fee\u6539\u3002

\n

2.6.1 \u66f4\u6362 native \u7aef\u901a\u4fe1\u89c4\u5219

\n

SDK \u4e2d\u4f7f\u7528\u7684 WebViewJavascriptBridge \u6765\u5b9e\u73b0\u901a\u4fe1\u7684\uff0c\u5728 PLVFloatableWebViewBridge \u4e2d\u5bf9\u5176\u8fdb\u884c\u4e86\u5c01\u88c5\u5904\u7406\uff0c\u5982\u679c\u9700\u8981\u66f4\u6362 native \u7aef\u901a\u4fe1\u89c4\u5219\u53ea\u9700\u8981\u4fee\u6539 PLVFloatableWebViewBridge \u8fd9\u4e2a\u7c7b\u5373\u53ef

\n

\u66f4\u6362\u6ce8\u518c\u6d88\u606f\u65b9\u5f0f:

\n
- (void)registerHandler:(NSString*)handlerName handler:(WVJBHandler)handler {\n //\u5f53\u4f7f\u7528\u7684\u65b0\u7684 web-native \u89c4\u5219\u65f6\uff0c\u53ef\u4ee5\u5c06\u4e0b\u9762\u7684\u4ee3\u7801\u4fee\u6539\u4e3a webview \u4f7f\u7528\u65b0\u89c4\u5219\u6ce8\u518c\u6d88\u606f\u65f6\u7684\u4ee3\u7801\n [self.bridge registerHandler:handlerName handler:handler];\n}\n
\n

\u66f4\u6362\u53d1\u9001 web \u7aef\u6d88\u606f

\n
- (void)callHandler:(NSString*)handlerName data:(id _Nullable)data responseCallback:(WVJBResponseCallback _Nullable)responseCallback {\n //\u5f53\u4f7f\u7528\u7684\u65b0\u7684 web-native \u89c4\u5219\u65f6\uff0c\u53ef\u4ee5\u5c06\u4e0b\u9762\u7684\u4ee3\u7801\u4fee\u6539\u4e3a webview \u4f7f\u7528\u65b0\u89c4\u5219\u53d1\u9001\u6d88\u606f\u65f6\u7684\u4ee3\u7801\n [self.bridge callHandler:handlerName data:data responseCallback:responseCallback];\n}\n
\n

2.6.2 \u66f4\u6362 web \u7aef\u901a\u4fe1\u89c4\u5219

\n

\u5f53 native \u7aef\u901a\u4fe1\u89c4\u5219\u6539\u53d8\u65f6\uff0cweb \u7aef\u5219\u8981\u6839\u636e\u662f\u5426\u4e0e\u539f\u6765\u7684\u901a\u4fe1\u65b9\u5f0f\u539f\u7406\u76f8\u540c\u6765\u5224\u65ad\u662f\u5426\u9700\u8981\u4fee\u6539\u3002

\n

\u5f53\u524d web \u7aef\u6ce8\u518c\u6d88\u606f\u65b9\u5f0f

\n
bridge.registerHandler(\"testJavascriptHandler\",\n function (data, responseCallback) {\n console.log(data);\n responseCallback(data);\n }\n );\n
\n

\u5f53\u524d web \u7aef\u53d1\u9001\u6d88\u606f\u65b9\u5f0f

\n
bridge.callHandler(\"callAppEvent\", { },\n function responseCallback(responseData) {\n console.log(responseData);\n }\n);\n
\n

\u5f53\u524d web-native \u7684\u901a\u4fe1\u662f\u901a\u8fc7 bridge \u8fd9\u79cd\u65b9\u5f0f\u6765\u53d1\u9001\u548c\u63a5\u6536\u6d88\u606f\u7684\uff0c\u5982\u679c\u9700\u8981\u8c03\u6574\u53ef\u7528\u96c6\u6210\u9879\u76ee web \u7aef\u63a5\u6536\u3001\u53d1\u9001\u6d88\u606f\u7684\u65b9\u5f0f\u6765\u8fdb\u884c\u66ff\u6362\u3002

\n

2.7 iOS \u7cfb\u7edf\u7248\u672c\u4f7f\u7528\u7cfb\u7edf\u5c0f\u7a97\u529f\u80fd\u8bf4\u660e

\n

iOS \u56e0\u4e3a\u7cfb\u7edf\u9650\u5236\u60f3\u5b9e\u73b0\u7cfb\u7edf\u5c0f\u7a97\u53ea\u80fd\u901a\u8fc7\u753b\u4e2d\u753b\u7684\u529f\u80fd\uff0c\u540c\u65f6\u8fd9\u4e2a\u529f\u80fd\u4f1a\u6709\u7248\u672c\u9650\u5236\uff0c\u5728 iOS14+\u5f00\u59cb\u652f\u6301 iPhone \u7684\u753b\u4e2d\u753b\u529f\u80fd\u3002\u540c\u65f6\u76f4\u64ad\u5982\u679c\u4f7f\u7528\u7cfb\u7edf\u64ad\u653e\u5668 AVPlayer \u4f1a\u6709 14s+\u7684\u9ad8\u5ef6\u8fdf\uff0cIJKPlayer \u53ef\u4ee5\u5b9e\u73b0\u4f4e\u5ef6\u8fdf\uff0c\u4f46\u662f iOS15 \u4ee5\u4e0a\u753b\u4e2d\u753b\u624d\u652f\u6301 SampleBufferLayer \uff0c\u56e0\u6b64\u5982\u679c\u76f4\u64ad\u4f4e\u5ef6\u8fdf\u7684\u8bdd\u9700\u8981 iOS15+\u3002

\n\n

\u4e09\u3001\u9e3f\u8499 next

\n

3.1 \u7b80\u4ecb

\n

PLVWebSDK \u9879\u76ee\u4ece\u5c5e\u4e8e\u6613\u65b9\u4fe1\u606f\u79d1\u6280\u80a1\u4efd\u6709\u9650\u516c\u53f8\uff0c\u5bf9\u4fdd\u5229\u5a01\u4e91\u76f4\u64ad\u3001\u4e91\u70b9\u64ad\u7cfb\u5217\u4ea7\u54c1\u7684\u76f4\u64ad\u3001\u56de\u653e\u89c2\u770b\u505a\u4e86\u826f\u597d\u7684\u9002\u914d\uff0c\u6781\u5927\u4f18\u5316\u4e86\u7528\u6237\u7684\u89c2\u770b\u4f53\u9a8c\uff0c\u5e76\u652f\u6301\u6d6e\u7a97\u64ad\u653e\u7b49\u6269\u5c55\u529f\u80fd\uff0c\u4e5f\u53ef\u4f5c\u4e3a\u5176\u4ed6\u7f51\u9875\u7684\u5c55\u793a\u5bb9\u5668\u3002

\n

\u672c\u9879\u76ee\u5305\u542b\u529f\u80fd\u5982\u4e0b\uff1a

\n\n

3.2 \u4e0b\u8f7d\u5b89\u88c5

\n
ohpm install plvwebsdk\n
\n

OpenHarmony ohpm \u73af\u5883\u914d\u7f6e\u7b49\u66f4\u591a\u5185\u5bb9\uff0c\u8bf7\u53c2\u8003\u5982\u4f55\u5b89\u88c5 OpenHarmony ohpm \u5305

\n

3.3 \u9700\u8981\u6743\u9650

\n
ohos.permission.INTERNET\nohos.permission.GET_NETWORK_INFO\n
\n

3.5 \u529f\u80fd\u8bf4\u660e

\n

3.5.1 PLVWebViewConfig

\n

1.\u8bbe\u7f6e UA

\n

\u5f53\u524d\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u7684\u65b9\u5f0f\u6765\u8bbe\u7f6e\u9700\u8981\u7684 UA

\n

PLVWebViewConfig().setUa(\"Android\" + PLVUAConfig.defaultUA)

\n

\u6ce8\u610f\uff1a\u5982\u679c\u9700\u8981\u5230 Saas \u9875\u9762\u7684\u5c0f\u7a97\u529f\u80fd\u7684\u60c5\u51b5\uff0c\u5fc5\u987b\u5728 UA \u4e2d\u5e26\u4e0a Android \u548c PLVUAConfig.defaultUA \u5b57\u6bb5

\n

2.\u8bbe\u7f6e url

\n

\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u7684\u65b9\u5f0f\u6765\u8bbe\u7f6e\u9700\u8981\u52a0\u8f7d\u7684 url

\n

PLVWebViewConfig().setUrl(\"\u9700\u8981\u52a0\u8f7d\u7684 url\")

\n

3.\u8bbe\u7f6e\u662f\u5426\u5141\u8bb8\u5c0f\u7a97\u60ac\u6d6e

\n

\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u7684\u65b9\u5f0f\u6765\u8bbe\u7f6e\u662f\u5426\u5141\u8bb8\u5f00\u542f\u5c0f\u7a97\u529f\u80fd\uff0c\u9ed8\u8ba4\u662f\u5f00\u542f\u7684\uff0c\u5982\u4e0d\u9700\u8981\u53ef\u4ee5\u8bbe\u7f6e\u4e3a false

\n

PLVWebViewConfig().setAllowFloatingWindow(true)

\n

3.5.2 \u81ea\u5b9a\u4e49\u6ce8\u518c\u4e8b\u4ef6

\n

\u5f53\u524d SDK \u5185\u90e8\u5df2\u7ecf\u6ce8\u518c\u597d\u4e0e\u524d\u7aef\u9875\u9762\u901a\u4fe1\u7684\u4e8b\u4ef6\uff0c\u5f53\u63a5\u5165 sdk \u540e\u5c31\u80fd\u76f4\u63a5\u4f7f\u7528\u8fd9\u4e9b\u4e8b\u4ef6\u3002

\n

SDK \u4e5f\u652f\u6301\u6ce8\u518c\u81ea\u5b9a\u4e49\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u7684\u65b9\u5f0f\u6765\u8fdb\u884c\u6ce8\u518c

\n
this.controller.registerHandler(\"\u81ea\u5b9a\u4e49\u4e8b\u4ef6\", (data: string) => {// \u76d1\u542c\u81ea\u5b9a\u4e49\u4e8b\u4ef6\u7684\u5904\u7406\n})\nthis.controller.callHandle(\"\u53d1\u9001\u539f\u751f\u4e8b\u4ef6\", \"xxx\", () => {//\u53d1\u9001\u539f\u751f\u4e8b\u4ef6\n})\n
\n

\u5982\u679c\u9700\u8981\u76d1\u542c/\u62e6\u622a SDK \u5185\u90e8\u5df2\u7ecf\u5b9e\u73b0\u4e86\u7684\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u7684\u65b9\u5f0f\u7ee7\u7eed\u76d1\u542c/\u62e6\u622a\uff0c\u8fd9\u91cc\u4ee5 onShare \u4e8b\u4ef6\u4e3a\u4f8b\u5b50\uff0c\u5982\u679c\u9700\u8981\u76d1\u542c/\u62e6\u622a\u5176\u4ed6\u4e8b\u4ef6\u53ef\u4ee5\u4eff\u7167\u8fd9\u91cc\u6765\u5b8c\u6210

\n
this.controller.registerCustomerContainEvent({\n onShare: () => {// \u76d1\u542c\u5230 onShare \u4e8b\u4ef6\u65f6\u7684\u64cd\u4f5c return true // return true \u8868\u793a\u62e6\u622a\u6389\u5206\u4eab\u4e8b\u4ef6 false \u5c31\u7ee7\u7eed\u7531 sdk \u5f80\u4e0b\u6267\u884c\n }\n})\n
\n

\u56db\u3001\u81ea\u5b9a\u4e49\u4e8b\u4ef6

\n
// \u5c0f\u7a97\u64ad\u653e\u4e8b\u4ef6\nwebviewBridage?.sendData('clickProduct', webviewData);\n\n// \u6ca1\u6709\u5c0f\u7a97\u64ad\u653e\u7684\u60c5\u51b5\uff1a \u76d1\u542c\u81ea\u5b9a\u4e49\u4e8b\u4ef6\nwebviewBridage?.sendData('clickProductCustom', webviewData);\n\n// \u6570\u636e\u683c\u5f0f\nconst webviewData = {\n width: plvWebviewDataSize.width,\n height: plvWebviewDataSize.height,\n newPage: true,\n link: \u201c\u8df3\u8f6c\u7684\u81ea\u5b9a\u4e49 url\u201d,\n data: {\n type : out | inner | stock\n link : \u201c\u8df3\u8f6c\u7684\u81ea\u5b9a\u4e49 url\u201d ( \u540c\u4e0a link )\n market : \u20185053\u2019,\n code : 789465,\n name : \u540d\u79f0\n },\n}\n
\n

clickProduct \u4e8b\u4ef6 \u548c clickProductCustom \u81ea\u5b9a\u4e49 webviewData ---> data \u4e0b\u9762\u6839\u636e type \u548c \u5176\u4ed6\u53c2\u6570\u5b8c\u6210 app \u5185\u94fe\u63a5\u8df3\u8f6c\u529f\u80fd

\n

\u5bf9\u65b9\u6848\u6709\u4efb\u4f55\u7591\u95ee\uff0c\u53ef+V\uff1awjc24680525 \uff0c\u5907\u6ce8\u201c\u5c0f\u7a97\u201d

\n" }, { "author": { "url": "member/xscc", "name": "xscc", "avatar": "https://cdn.v2ex.com/gravatar/3a0fe4765a0ef829862d3c23b09bcfe2?s=73&d=retro" }, "url": "t/1066949", "title": "\u6253\u7b97\u4e70\u4e2a HDMI \u65e0\u7ebf\u6295\u5c4f\u5668\uff0c\u6709\u6ca1\u6709\u63a8\u8350\u7684\uff1f\u7a33\u5b9a\u538b\u5012\u4e00\u5207", "id": "t/1066949", "date_published": "2024-08-22T03:48:28+00:00", "content_html": "\u6253\u7b97\u518d\u4e70\u4e2a HDMI \u65e0\u7ebf\u6295\u5c4f\u8bbe\u5907\uff0c\u4e00\u5b9a\u8981\u7a33\u5b9a\u3002\u73b0\u5728\u6709\u5957\u5728\u7528\u7684\uff0c\u662f 21 \u5e74\u4e70\u7684\u7eff\u8054\uff0c\u5f53\u65f6\u4e70\u7684\u4e5f\u7b97\u8fc7\u5f97\u53bb\u7684\uff0c\u597d\u50cf 1200 \u591a\uff0c\u73b0\u5728\u662f\u6bcf\u6b21\u7528\u90fd\u8981\u63d2\u62d4\u4e0b\u63a5\u6536\u7aef\u7684\u7535\u6e90\uff0c\u624d\u80fd\u6b63\u5e38\u8fde\u63a5\u3002\u60f3\u6362\u5957\u65b0\u7684\uff0c\u770b\u5230\u6709\u4e2a\u724c\u5b50\u662f PX \u5927\u901a\uff0c\u5bf9\u5cb8\u7684\u4ea7\u54c1\uff0c\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u4e86\u89e3\u7684\uff0c\u7a33\u5b9a\u6027\u5982\u4f55\uff0c\u8bf4\u6765\u542c\u542c\u3002\u8fc8\u62d3\u7ef4\u77e9\uff08 MT-viki \uff09\u7684\u4e1c\u897f\u5370\u8c61\u4e0d\u597d\uff0c\u65e9\u5e74 VGA \u5206\u914d\u5668\u5403\u591f\u82e6\u5934\uff0c\u6ca1\u4e00\u4e2a\u6491\u8fc7\u4e00\u5e74\u7684\uff0c\u5176\u4ed6\u5c0f\u5382\u6742\u724c\u7684\u66f4\u4e0d\u653e\u5fc3\u3002\u5e0c\u671b\u5e2e\u5fd9\u63a8\u8350\u4e2a\u7a33\u5b9a\u7684 HDMI \u6295\u5c4f\u5668\uff0c\u80fd\u6491\u4f4f 24X7 \u5f00\u673a\u7684\u90a3\u79cd\uff0c\u81f3\u5c11\u4e0d\u80fd\u6bcf\u6b21\u90fd\u63d2\u62d4\u7535\u6e90\u3002\u8c22\u8c22\uff01" }, { "author": { "url": "member/vevlins", "name": "vevlins", "avatar": "https://cdn.v2ex.com/avatar/677c/39d0/274232_large.png?m=1711777186" }, "url": "t/1064131", "title": "\u7c7b\u4f3c\u4e8e veed/zeemo \u7684\u52a8\u6001\u5b57\u5e55\u6548\u679c\u600e\u4e48\u5b9e\u73b0", "id": "t/1064131", "date_published": "2024-08-11T07:42:12+00:00", "content_html": "

\u4e00\u884c\u5b57\u5e55\uff0c\u5b57\u6bcd\u8ddf\u968f\u8bf4\u8bdd\u65f6\u95f4\u9ad8\u4eae\uff0c\u4e0d\u8003\u8651\u8bed\u97f3\u8bc6\u522b\u95ee\u9898\uff0c\u5047\u8bbe\u6211\u5df2\u7ecf\u53ef\u4ee5\u5f97\u5230\u6bcf\u4e2a\u5355\u8bcd\u548c\u53e5\u5b50\u7684\u5c55\u793a\u65f6\u95f4\uff0c\u8fd9\u79cd\u89c6\u9891\u751f\u6210\u662f\u901a\u8fc7\u4ec0\u4e48\u6280\u672f\u505a\u5230\u7684\u5462\uff1f\u6211\u77e5\u9053 ffmpeg \uff0c\u6709\u4ec0\u4e48\u751f\u6210\u8fd9\u79cd\u5b57\u5e55\u52a8\u753b\u7684\u5b8c\u6574\u4e00\u4e9b\u7684\u65b9\u6848\u5417

\n" }, { "author": { "url": "member/chriselee", "name": "chriselee", "avatar": "https://cdn.v2ex.com/gravatar/3634e5a8d371790923f56f6769a84bd5?s=73&d=retro" }, "url": "t/1064074", "title": "\u5206\u4eab\u4e00\u4e2a AI \u751f\u6210\u89c6\u9891\u7684\u7f51\u7ad9 Sora Video AI", "id": "t/1064074", "date_published": "2024-08-11T01:50:08+00:00", "content_html": "\u73b0\u5728\u7684\u4eba\u5de5\u667a\u80fd\u751f\u6210\u89c6\u9891\uff0c\u8981\u60f3\u83b7\u5f97\u66f4\u52a0\u5b9a\u5236\u5316\u7684\u6548\u679c\u7684\u8bdd\uff0c\u4f3c\u4e4e\u5e94\u8be5\u5148\u7528 AI \u751f\u6210\u56fe\u7247\uff0c\u7136\u540e\u518d\u7528 AI \u4ece\u56fe\u7247\u751f\u6210\u89c6\u9891\u3002\u7528\u7684\u662f\u548c\u5feb\u624b\u53ef\u7075\u76f8\u540c\u67b6\u6784\u7684\u5927\u6a21\u578b\u3002
https://www.soravideoai.net" }, { "author": { "url": "member/Philippa", "name": "Philippa", "avatar": "https://cdn.v2ex.com/gravatar/30406fd1968dc51a99a723eb4d2bedc4?s=73&d=retro" }, "url": "t/1059577", "title": "\u6709\u6ca1\u6709\u81ea\u52a8\u4ece\u89c6\u9891\u8bc6\u522b\u7cbe\u5f69\u77ac\u95f4\u5e76\u63d0\u53d6\u7167\u7247\u7684 AI \u5de5\u5177\uff1f", "id": "t/1059577", "date_published": "2024-07-23T20:38:11+00:00", "content_html": "

\u6709\u5927\u6982\u5341\u51e0\u4e2a\u5c0f\u65f6\u7684\u65c5\u6e38 4K \u89c6\u9891\uff0c\u5168\u7a0b\u90fd\u662f\u624b\u6301\u5f55\u5236\u4e3a\u4e3b\uff0c\u6ca1\u4ec0\u4e48\u7167\u7247\u3002\u73b0\u5728\u60f3\u4ece\u5176\u4e2d\u63d0\u53d6\u51fa\u7cbe\u5f69\u77ac\u95f4\u7684\u7167\u7247\uff0c\u4f46\u53c8\u4e0d\u60f3\u624b\u52a8\u64cd\u4f5c\u3002\u73b0\u5728 AI \u90a3\u4e48\u53d1\u8fbe\uff0c\u4f30\u8ba1\u4e5f\u80fd\u505a\u4e2a 5 \u30016 \u6210\uff0c\u60f3\u95ee\u95ee\u6709\u4ec0\u4e48\u597d\u5de5\u5177\u63a8\u8350\u3002

\n" }, { "author": { "url": "member/purenothingform", "name": "purenothingform", "avatar": "https://cdn.v2ex.com/gravatar/12315caeb729424d33109268a282df12?s=73&d=retro" }, "url": "t/1059559", "title": "\u6296\u97f3\u771f\u6076\u5fc3\u80fd\u4e0b\u8f7d\u5230\u7684\u6700\u9ad8\u753b\u8d28\u4e5f\u662f\u7ecf\u8fc7\u538b\u7f29\u7684", "id": "t/1059559", "date_published": "2024-07-23T14:34:57+00:00", "content_html": "

\u6296\u97f3\u80fd\u4e0b\u8f7d\u5230\u7684\u6700\u9ad8\u753b\u8d28\u4e5f\u662f\u7cca\u7cca\u7684\n\u4e0d\u50cf\u5c0f\u7ea2\u4e66\u5728\u670d\u52a1\u5668\u4fdd\u7559\u539f\u59cb\u753b\u8d28\u6587\u4ef6\u53ef\u4ee5\u901a\u8fc7\u6cb9\u7334\u4e0b\u8f7d\n\u676f\u5177\u7684\u60c5\u51b5\u662f\u535a\u4e3b\u5728\u6296\u97f3\u5e73\u53f0\u4e0a\u4f20\u7684\u67d0\u4e9b\u89c6\u9891\u5374\u4e0d\u5728\u5c0f\u7ea2\u4e66\u4e5f\u4e0a\u4f20\uff0c\u5bfc\u81f4\u7c89\u4e1d\u6700\u591a\u53ea\u80fd\u4e0b\u8f7d\u5230\u7cca\u7cca\u7684\u6296\u97f3\u538b\u7f29\u7248\u672c\u3002\n\u600e\u6837\u529d\u8bf4\u535a\u4e3b\u4e00\u7897\u6c34\u7aef\u5e73\u4e0d\u8981\u504f\u5fc3\u6296\u97f3\u5e73\u53f0\uff1f

\n" }, { "author": { "url": "member/easonwaii", "name": "easonwaii", "avatar": "https://cdn.v2ex.com/gravatar/7be9004d79d865b485a9d002291f2864?s=73&d=retro" }, "url": "t/1055706", "title": "\u6709\u507f\uff0c MP4 \u89c6\u9891\u65f6\u957f\u4e0e\u5b9e\u9645\u4e0d\u7b26\u7684\u95ee\u9898", "id": "t/1055706", "date_published": "2024-07-08T08:27:37+00:00", "content_html": "\u6709\u507f\uff1a\u5173\u4e8e MP4 \u683c\u5f0f\uff0c\u89c6\u9891\u603b\u65f6\u957f\u4e0e\u5b9e\u9645\u73b0\u5b9e\u4e0d\u7b26\u7684\u95ee\u9898\uff0c\u4ef7\u683c\u4f60\u62a5\u3002
\u52a0\u7eff\u8272\uff1aZWFzb25nbw==" }, { "author": { "url": "member/giganet", "name": "giganet", "avatar": "https://cdn.v2ex.com/avatar/ccb8/6849/271334_large.png?m=1749049049" }, "url": "t/1050366", "title": "\u90fd 2024 \u5e74\u4e86\uff0c\u4f53\u80b2\u8d5b\u4e8b\u76f4\u64ad\u8fd8\u5728 25Hz1080 \u8fd8 i...", "id": "t/1050366", "date_published": "2024-06-17T15:15:19+00:00", "content_html": "FullHD \u7684\u7535\u89c6\u90fd\u7528\u4e86\u5c0f 20 \u5e74\u4e86\uff0c\u76f4\u64ad\u7684\u89c6\u9891\u89c4\u683c\u8fd8\u5728 1080i \uff0c25Hz \u7684\u89c4\u683c\uff0c\u5565\u65f6\u5019\u80fd\u4e0a 4K60Hz \u554a\uff0c\u81f3\u5c11\u5148 60Hz \u4e5f\u597d\u554a\uff01\uff01" }, { "author": { "url": "member/mercury233", "name": "mercury233", "avatar": "https://cdn.v2ex.com/gravatar/e1ef141461115a7ff1fb1085e2140cc3?s=73&d=retro" }, "url": "t/1049612", "title": "MPC Video Renderer \u4e2d RTX \u8d85\u5206\u8fa8\u7387\u548c\u6b63\u786e\u7684\u89c6\u9891\u7f29\u5c0f\u6548\u679c\u53ea\u80fd\u4e8c\u9009\u4e00\u5417", "id": "t/1049612", "date_published": "2024-06-14T09:10:03+00:00", "content_html": "\u6211\u4f7f\u7528\u7684\u662f MPC-HC 2.3.0 \u548c MPC Video Renderer 0.8.3.2255

\u5982\u679c\u5728\u8bbe\u7f6e\u4e2d\u901a\u8fc7\u4f7f\u7528 D3D11 \u7f29\u653e\u6765\u5f00\u542f\u8d85\u5206\u8fa8\u7387\uff0c\u628a\u7a97\u53e3\u7f29\u5c0f\u65f6\uff0c\u753b\u9762\u4f1a\u51fa\u73b0\u4e25\u91cd\u7684\u952f\u9f7f


\u5173\u95ed\u8d85\u5206\u8fa8\u7387\u65f6\u753b\u8d28\u6b63\u5e38



VideoRenderer \u7684 issue \u4e0a\u8bf4\u662f nvidia \u7684\u9505
https://github.com/Aleksoid1978/VideoRenderer/issues/122
https://github.com/Aleksoid1978/VideoRenderer/issues/120

\u76ee\u524d\u53ea\u80fd\u624b\u52a8\u5207\u6362\u8fd9\u4e2a\u5f00\u5173\uff0c\u60f3\u95ee\u95ee\u6709\u6ca1\u6709\u6210\u529f\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u7684\u670b\u53cb" }, { "author": { "url": "member/DuckSum", "name": "DuckSum", "avatar": "https://cdn.v2ex.com/avatar/7a66/193b/662567_large.png?m=1714049305" }, "url": "t/1035733", "title": "\u63a8\u8350\u51e0\u4e2a\u5728\u7528\u7684\u89c6\u9891\u4e0b\u8f7d\u5de5\u5177", "id": "t/1035733", "date_published": "2024-04-25T12:50:48+00:00", "content_html": "

\u5728\u7ebf\u89c6\u9891\u4e0b\u8f7d\u5668-XXVID

\n

\u514d\u8d39\uff0c\u53ef\u4ee5\u4e0b\u8f7d\u9ad8\u6e05\u3001\u5168\u9ad8\u6e05\u53ca 4K+\u89c6\u9891\uff0c\u90e8\u5206\u7ad9\u70b9\u8fd8\u652f\u6301\u65e0\u6c34\u5370\u4e0b\u8f7d\uff0c\u81ea\u79f0\u8986\u76d6 1000+\u7f51\u7ad9\uff0c\u6d77\u5916\u51e0\u4e2a\u70ed\u95e8\u7ad9\u70b9\u786e\u5b9e\u53ef\u7528\uff0c\u61c2\u5f97\u90fd\u61c2\uff0c\u4f46\u662f\u4e0d\u652f\u6301 YouTube \uff01

\n

\u7f51\u7ad9\u5730\u5740\ud83d\udc49 XXVID

\n

\"\u5728\u7ebf\u89c6\u9891\u4e0b\u8f7d\u5668\uff5c

\n

\"\u5728\u7ebf\u89c6\u9891\u4e0b\u8f7d\u5668\uff5c

\n

YouTube \u89c6\u9891\u4e0b\u8f7d\u5668-DMSAVE

\n

\u514d\u8d39\uff0c\u53ef\u4ee5\u9009\u62e9\u4e0d\u540c\u5206\u8fa8\u7387\uff0c\u5305\u62ec\u97f3\u9891\u3001\u89c6\u9891\uff0c\u4e5f\u652f\u6301\u5176\u4ed6\u7ad9\u70b9\u4e0b\u8f7d\uff0c\u4f46\u662f\u4eb2\u6d4b YouTube \u6548\u679c\u6700\u597d\u3002

\n

\u7f51\u7ad9\u5730\u5740\ud83d\udc49 DMSAVE

\n

\"YouTube

\n

\u8fd8\u6709\u54ea\u4e9b\u5927\u5bb6\u4e00\u76f4\u5728\u7528\u7684\u89c6\u9891\u4e0b\u8f7d\u7ad9\u70b9\uff0c\u6b22\u8fce\u8bc4\u8bba\u5206\u4eab\uff0c\u4f20\u64ad\u6b63\u80fd\u91cf\ud83d\ude0e

\n" }, { "author": { "url": "member/huage", "name": "huage", "avatar": "https://cdn.v2ex.com/avatar/162a/2584/69678_large.png?m=1700057630" }, "url": "t/1029063", "title": "\u7f51\u4e0a\u6709\u516c\u5f00\u7684\u5927\u534e\u6216\u8005\u6d77\u5eb7\u7684\u89c6\u9891\u6d41\u505a\u6d4b\u8bd5\u7801\uff1f", "id": "t/1029063", "date_published": "2024-04-02T03:27:39+00:00", "content_html": "\u56e0\u4e3a\u9879\u76ee\u9700\u8981\uff0c\u60f3\u5728\u7f51\u9875\u4e0a\u6d4b\u8bd5\u4e00\u4e0b\u5927\u534e\u6216\u8005\u6d77\u5eb7\u7684 HLS \u6216\u8005 RTSP \u89c6\u9891\u6d41\u80fd\u5426\u6b63\u5e38\u64ad\u653e\uff0c\u6709\u6ca1\u6709\u54ea\u91cc\u53ef\u4ee5\u83b7\u5f97\u5462\uff1f" }, { "author": { "url": "member/nanqic", "name": "nanqic", "avatar": "https://cdn.v2ex.com/gravatar/8e3ed4d9fb41e381a78a6e53039b1aec?s=73&d=retro" }, "url": "t/1020033", "title": "\u5df2\u6709\u97f3\u9891\u6587\u7a3f\uff0c\u600e\u6837\u751f\u6210\u5b57\u5e55\u65f6\u95f4\u7ebf", "id": "t/1020033", "date_published": "2024-03-02T06:37:37+00:00", "content_html": "

\u5982\u9898\uff0c\u8bf7\u6559\u5404\u4f4d\u505a\u5b57\u5e55\u7684\u5927\u4f6c\uff0c\u5df2\u6709\u5982\u4e0b\u683c\u5f0f\u7684 txt \u6587\u7a3f\uff0c\u548c mp3 \u6587\u4ef6\uff0c\u6709\u81ea\u52a8\u5339\u914d\u5b57\u5e55\u65f6\u95f4\u7ebf\u7684\u8f6f\u4ef6\u5417\uff1f\n\u7528\u8fc7\u526a\u6620\uff0c\u51c6\u786e\u7387\u4e0d\u9ad8\uff0cSubtitle Edit \u597d\u50cf\u6ca1\u6709\u8fd9\u4e2a\u529f\u80fd\uff0c\u76ee\u524d\u662f\u542c\u4e00\u53e5\u97f3\u9891\uff0c\u6839\u636e\u6ce2\u7eb9\u624b\u52a8\u8c03\u6574\u65f6\u95f4\uff0c\u6709\u6ca1\u6709\u9ad8\u6548\u4e00\u70b9\u7684\u5904\u7406\u65b9\u5f0f\uff1f

\n
\u7b2c\u4e00\u53e5\n\u7b2c\u4e8c\u53e5\n\u7b2c\u4e09\u53e5\n
\n

\u60f3\u8981\u751f\u6210\u5982\u4e0b\u683c\u5f0f\u6216 srt \u5b57\u5e55

\n
00:00:00:01 00:00:02:08 \u7b2c\u4e00\u53e5\n00:00:02:08 00:00:03:24 \u7b2c\u4e8c\u53e5\n00:00:03:24 00:00:06:04 \u7b2c\u4e09\u53e5\n
\n" }, { "author": { "url": "member/Haku", "name": "Haku", "avatar": "https://cdn.v2ex.com/avatar/f178/a1b8/133660_large.png?m=1770122472" }, "url": "t/1019354", "title": "\u8bf7\u95ee\u73b0\u5728\u6700\u65b0\u7684\u8868\u60c5\u8fc1\u79fb\u7814\u7a76\uff0c\u6709\u5f00\u6e90\u4ee3\u7801\u9879\u76ee\u7684\u662f\u54ea\u4e9b\u554a\uff1f", "id": "t/1019354", "date_published": "2024-02-29T01:59:52+00:00", "content_html": "

\u76ee\u524d\u7f51\u4e0a\u80fd\u641c\u5230\u7684 first order emotion \u7b49\u90fd\u5df2\u7ecf\u662f\u597d\u51e0\u5e74\u4ee5\u524d\u7684\u4e86\u3002\u6700\u8fd1\u770b\u5230\u7684\u8df3\u821e\u7684\u5219\u662f\u5b57\u8282\u7684\u8c8c\u4f3c\u8fd8\u6ca1\u5f00\u6e90\u3002

\n

\u98de\u6d46\u7684\u6211\u770b\u89c6\u9891\u548c\u81ea\u5df1\u8dd1\u63a8\u7406\uff0c\u6548\u679c\u90fd\u4e0d\u592a\u597d\uff0c\u60f3\u95ee\u4e0b\u5404\u4f4d\u77e5\u9053\u6709\u54ea\u4e9b\u6bd4\u8f83\u65b0\u4e00\u70b9\u4e14\u6548\u679c\u8fd8\u884c\u7684\u9879\u76ee\u5417\uff1f

\n" }, { "author": { "url": "member/xmuli", "name": "xmuli", "avatar": "https://cdn.v2ex.com/avatar/a9cf/d7f2/490357_large.png?m=1732109842" }, "url": "t/1016045", "title": "tx \u89c6\u9891\u7f51\u9875\u7248\u90e8\u5206\u5df2\u4e0d\u7ed9\u770b\u3002\u3002\u3002", "id": "t/1016045", "date_published": "2024-02-17T12:17:27+00:00", "content_html": "

Chrome && Firefox && Edge \u64ad\u653e\u90fd\u5982\u56fe\uff0c\u5f97\u4e0b\u5ba2\u6237\u7aef\u4e86\uff1b\n\u4eca\u665a\u66f4\u65b0 20:00 \uff0c\u5e74\u756a 84 \u96c6\uff1b\u5176\u5b83\u5267\u672a\u6d4b\uff1b

\n

\"pFJEpYn.png\"

\n

\"pFJEFyT.png\"

\n" }, { "author": { "url": "member/bkmi", "name": "bkmi", "avatar": "https://cdn.v2ex.com/avatar/9d67/8e20/84263_large.png?m=1735309349" }, "url": "t/1013238", "date_modified": "2024-01-31T14:45:25+00:00", "content_html": "

\u4e0d\u8bba\u662f\u5bb6\u91cc\u7684\u7535\u89c6\u8fd8\u662f M1 Pro \u7b14\u8bb0\u672c\uff0c\u8fd8\u6709 iPad Pro \uff0c\u4e09\u661f S23U \uff0c\u8fd9\u4e9b\u8bbe\u5907\u4eae\u5ea6\u90fd\u4e0d\u4f4e\uff0c\u770b\u53c2\u6570 HDR \u5185\u5bb9\u90fd\u80fd\u5230 1600 \u5c3c\u7279\uff0c\u4f46\u662f\u611f\u89c9 HDR \u753b\u9762\u8fd8\u662f\u504f\u6697\uff0c\u6240\u8c13\u7684\u66f4\u591a\u7ec6\u8282\u4e5f\u6ca1\u592a\u611f\u53d7\u51fa\u6765\u3002\u662f\u8bbe\u5907\u5c4f\u5e55\u4eae\u5ea6\u8fd8\u4e0d\u591f\uff0c\u8fd8\u662f HDR \u5c31\u8fd9\u6837\u3002

\n

\u5e73\u65f6\u6211\u8fd8\u662f\u503e\u5411\u4e8e\u6311 SDR \u89c6\u9891\u5728\u770b\uff0c\u4f46\u662f\u6700\u8fd1\u4e0b\u8d44\u6e90\u53d1\u73b0\u8d8a\u6765\u8d8a\u591a\u662f HDR \u5185\u5bb9\uff0c\u8fd8\u6709 Dolby Vision \u5185\u5bb9\uff0c\u8d44\u6e90\u8d8a\u6765\u8d8a\u96be\u4e0b\u4e86\u3002

\n", "date_published": "2024-01-31T14:44:44+00:00", "title": "\u4f60\u4eec\u770b HDR \u89c6\u9891\u89c9\u5f97\u6548\u679c\u597d\u5417", "id": "t/1013238" }, { "author": { "url": "member/simple2025", "name": "simple2025", "avatar": "https://cdn.v2ex.com/gravatar/d8be1ee891483e0287a7350aae996608?s=73&d=retro" }, "url": "t/1012173", "title": "vlc \u64ad\u653e\u5668\u64ad\u653e\u89c6\u9891\u5207\u6362\u65f6\u4f1a\u4f7f\u5f53\u524d\u7a97\u53e3\u9000\u51fa\u6d3b\u52a8\u72b6\u6001,\u8fd9\u4e2a\u600e\u4e48\u4e0d\u4f7f\u5f53\u524d\u7a97\u53e3\u9000\u51fa\u6d3b\u52a8\u72b6\u6001\u5462?", "id": "t/1012173", "date_published": "2024-01-28T06:38:21+00:00", "content_html": "" }, { "author": { "url": "member/NightmareFn76", "name": "NightmareFn76", "avatar": "https://cdn.v2ex.com/gravatar/a8e4cc9304ed7c37a0298c37ca3d45d6?s=73&d=retro" }, "url": "t/1008521", "title": "\u5173\u4e8e AMD \u663e\u5361\u4e0e Pr \u786c\u4ef6\u52a0\u901f\u76f8\u5173\u7684\u95ee\u9898", "id": "t/1008521", "date_published": "2024-01-14T08:01:16+00:00", "content_html": "

\u4e4b\u524d\u6574\u4e86\u4e00\u53f0\u8fc7\u6e21\u4f7f\u7528\u7684\u53f0\u5f0f\u673a\nI3-12100F+AMD 5600XT\n\u7ed3\u679c\u4f7f\u7528 Pr \u65f6\u5019\u53d1\u73b0\u867d\u7136\u80fd\u9009\u62e9\u786c\u4ef6\u52a0\u901f,\u4f46\u538b\u5236\u89c6\u9891\u65f6\u5019 CPU \u57fa\u672c\u8dd1\u6ee1 GPU \u7eaf\u7cb9\u5728\u6478\u9c7c\n\u73b0\u5728\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u4ec0\u4e48\u89e3\u51b3\u65b9\u6848

\n" }, { "author": { "url": "member/wangshou89", "name": "wangshou89", "avatar": "https://cdn.v2ex.com/gravatar/8ead9f48200ac2b8806a29dbf22acab9?s=73&d=retro" }, "url": "t/1000374", "date_modified": "2023-12-14T07:13:07+00:00", "content_html": "action4 \u7684\u9a91\u884c\u914d\u4ef6\u53ef\u4ee5\u52a0\u5165 GPS \u4fe1\u606f\uff0c\u4f46\u662f\u6837\u5f0f\u56fa\u5b9a\u7684\uff0c\u5176\u5b9e\u5f88\u63a5\u8fd1\u4e86\u3002
\u53ea\u662f\u60f3\u5728\u8fd9\u4e2a\u57fa\u7840\u4e0a\u80fd\u663e\u793a\u5177\u4f53\u8def\u540d\u3002
", "date_published": "2023-12-14T07:12:11+00:00", "title": "\u6211\u8857\u62cd\u5f55\u5236\u89c6\u9891\u7684\u65f6\u5019\uff0c\u53f3\u4e0b\u89d2\u6709\u4e2a\u5730\u56fe\uff0c\u968f\u65f6\u544a\u8bc9\u89c2\u4f17\u6211\u5728\u54ea\u91cc\uff0c\u8fd9\u4e2a\u9700\u6c42\u6709\u529e\u6cd5\u5b9e\u73b0\u5417\uff1f", "id": "t/1000374" } ] } ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86