diff --git a/public/locales/zh-CN/translation.json b/public/locales/zh-CN/translation.json
index a16763b..eb5add8 100644
--- a/public/locales/zh-CN/translation.json
+++ b/public/locales/zh-CN/translation.json
@@ -283,6 +283,7 @@
"SOURCE_DETAILS": "媒体源信息",
"DIRECT": "直接播放",
"TRANSCODE": "转码",
+ "DIRECT_STREAM": "直接流",
"USERNAME": "用户名",
"PASSWORD": "密码",
"LOGIN": "登录",
diff --git a/src/pages/components/activity/activity-table.jsx b/src/pages/components/activity/activity-table.jsx
index 65ed9c8..0df5cc1 100644
--- a/src/pages/components/activity/activity-table.jsx
+++ b/src/pages/components/activity/activity-table.jsx
@@ -214,6 +214,37 @@ export default function ActivityTable(props) {
);
},
},
+ {
+ accessorKey: "PlayMethod",
+ header: i18next.t("TRANSCODE"),
+ size: 150,
+ Cell: ({ row }) => {
+ row = row.original;
+ if (row.PlayMethod === "Transcode") {
+ return (
+
+ {i18next.t("TRANSCODE")}
+ {row.TranscodingInfo ?
+
+ {!row.TranscodingInfo.IsVideoDirect &&
+ ({i18next.t("VIDEO")})
+ }
+ {!row.TranscodingInfo.IsAudioDirect &&
+ ({i18next.t("AUDIO")})
+ }
+ : ""
+ }
+
+ );
+ } else if (row.PlayMethod === "DirectPlay") {
+ return {i18next.t("DIRECT")};
+ } else if (row.PlayMethod === "DirectStream") {
+ return {i18next.t("DIRECT_STREAM")};
+ } else {
+ return -;
+ }
+ },
+ },
{
accessorKey: "DeviceName",
header: i18next.t("ACTIVITY_TABLE.DEVICE"),
diff --git a/src/pages/components/item-info/item-activity.jsx b/src/pages/components/item-info/item-activity.jsx
index ebb52f6..960b629 100644
--- a/src/pages/components/item-info/item-activity.jsx
+++ b/src/pages/components/item-info/item-activity.jsx
@@ -122,7 +122,7 @@ function ItemActivity(props) {
// }
filteredData = filteredData.filter((item) =>
- streamTypeFilter == "All"
+ streamTypeFilter === "All"
? true
: item.PlayMethod === (config?.IS_JELLYFIN ? streamTypeFilter : streamTypeFilter.replace("Play", "Stream"))
);
@@ -155,6 +155,9 @@ function ItemActivity(props) {
+
diff --git a/src/pages/components/statCards/playback_method_stats.jsx b/src/pages/components/statCards/playback_method_stats.jsx
index c285213..ebcc2ab 100644
--- a/src/pages/components/statCards/playback_method_stats.jsx
+++ b/src/pages/components/statCards/playback_method_stats.jsx
@@ -10,7 +10,8 @@ import BarChartGroupedLineIcon from "remixicon-react/BarChartGroupedLineIcon";
function PlaybackMethodStats(props) {
const translations = {
DirectPlay: ,
- Transocde: ,
+ Transcode: ,
+ DirectStream:
};
const chartIcon = ;
@@ -78,9 +79,15 @@ function PlaybackMethodStats(props) {
return (
- stream.Name == "DirectPlay" ? { ...stream, Name: translations.DirectPlay } : { ...stream, Name: translations.Transocde }
- )}
+ data={data.map((stream) => {
+ if (stream.Name === "DirectPlay") {
+ return { ...stream, Name: translations.DirectPlay };
+ } else if (stream.Name === "DirectStream") {
+ return { ...stream, Name: translations.DirectStream };
+ } else {
+ return { ...stream, Name: translations.Transcode };
+ }
+ })}
icon={chartIcon}
heading={}
units={}
diff --git a/src/pages/components/user-info/user-activity.jsx b/src/pages/components/user-info/user-activity.jsx
index ccdc360..5776821 100644
--- a/src/pages/components/user-info/user-activity.jsx
+++ b/src/pages/components/user-info/user-activity.jsx
@@ -226,6 +226,9 @@ function UserActivity(props) {
+