.aplus-v2 .aplus-content-wrapper {
position: relative;
overflow: hidden;
}
.aplus-v2 .container-with-background-image {
width: 100%;
height: 100%;
background-repeat: no-repeat;
background-size: cover;
}
function logShoppableMetrics(moduleName, showsAddToCart) {
if (window.ue && window.ue.count) {
window.ue.count(“aplus:shoppable:” + moduleName + “:addToCart”, showsAddToCart ? 1 : 0);
}
}
Product description
/**
* Common event handler for click and keydown events.
* @param {Event} event – The event object.
* @param {Function} handleClickOrEnter – Function to handle click or Enter key events.
* @param {Function} handleEsc – Function to handle Esc key events.
*/
// [TODO][AplusMantle-8064] Create common event handler util(key events, click events) in AplusModuleResources
function handleClickAndKeyEvents(event, handleClickOrEnterOrSpace) {
const ENTER_KEY_CODE = 13;
const ESCAPE_KEY_CODE = 27;
const SPACE_KEY_CODE = 32;
const isClick = event.type === ‘click’;
const isKeydown = event.type === ‘keydown’;
const isEnter = isKeydown && event.keyCode === ENTER_KEY_CODE;
const isSpace = isKeydown && event.keyCode === SPACE_KEY_CODE;
const isEsc = isKeydown && event.keyCode === ESCAPE_KEY_CODE;
if (isClick || isEnter || isSpace) {
handleClickOrEnterOrSpace();
} else if (isEsc) {
handleEsc(event);
}
}
/**
* Function to handle esc key event.
* @param {Event} event – The event object.
*/
function handleEsc(event) {
event.target.blur() // force remove focus
}
ptz camera outdoor
(window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js(‘https://m.media-amazon.com/images/I/61rtJ3+GOOL.js?AUIClients/VSEPlayer’);
(window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js(‘https://m.media-amazon.com/images/I/3175HHgX+OL._RC|11KFCxsEshL.js,11uNd0zHc-L.js,51ocjucRF0L.js,41tLmUCnr0L.js,91G7VmlBk7L.js,11cPgPsKKOL.js_.js?AUIClients/Brila’);
-
-
Auto-Cruise & Human Tracking
The ptz security camera can cruise and track human at any position you preset.
-
Identify Real Threats
Built-in AI sensor, support human detection, optional detection area.
-
Warn off the Intruder
Floodlights and sirens are activated as soon as the cameras detect suspicious motion.
-
Metal Housing & IP66 Waterproof
The ptz wifi camera can work perfectly in severe weather such as heavy rainstorm and sun exposure.
-
-
-
Professional Security Surveillance
24/7 continuous uninterrupted video recording, to protect the safety of your family and property.
-
Focus on What Really Matters
You can draw the area you want to detect in the app and receive alerts only for important areas.
-
Quick View of Important Moments
Find or download important moments is made easier with smart filters and timelines.
-
Multi-Users Viewing
You can view up to 4 surveillance screens at the same time and share the camera with your family.
-
Real-Time Conversation
Real-time speak with anybody in view of the ptz camera, a hello to friends or warn intruders.
P.now(“premium-aplus-13-carousel-4”).execute(“init-pagination-carousel”, function(init) {
if (init) {
return;
}
P.register(“premium-aplus-13-carousel-4”, function() {
return function() {
P.when(“A”, “jQuery”, “a-carousel-framework”, “ready”).execute(“paginate-carousel”, function (A, $, framework) {
const ENTER_KEY_CODE = 13;
const ESCAPE_KEY_CODE = 27;
const LEFT_ARROW_KEY = 37;
const RIGHT_ARROW_KEY = 39;
const HOME_KEY = 36;
const END_KEY = 35;
var moduleId = “4”;
var carouselName = “premium-aplus-13-carousel-4”;
var paginationAction = “aplus-pagination-dot-action-” + moduleId + “-” + carouselName;
var paginationGroup = “#aplus-pagination-group-” + moduleId + “-” + carouselName;
/* If the carousel goes to a new page */
A.on(“a:carousel:”+carouselName+”:change:pageNumber”, function (data) {
A.$(paginationGroup+” .carousel-slider-circle”).removeClass(“aplus-carousel-active”).attr(‘aria-selected’, ‘false’).attr(‘tabindex’, -1)
.eq(data.newValue – 1).addClass(“aplus-carousel-active”).attr(‘aria-selected’, ‘true’).attr(‘tabindex’, 0);
});
function syncPaginationDotsWithCarouselPages(numPages) {
const parentElement = document.querySelector(paginationGroup);
if (parentElement && parentElement.children) {
const children = parentElement.children;
for (let i = 0; i = numPages) {
// If number of dots > num of pages, we should hide other dots
children[i].classList.add(‘aplus-pagination-dot–display-none’);
} else if (children[i].classList.contains(‘aplus-pagination-dot–display-none’)) {
// Reset display of dots if it was hidden before
children[i].classList.remove(‘aplus-pagination-dot–display-none’);
}
}
}
}
framework.onInit(carouselName, function (carousel) {
try {
var totalPages = carousel.getAttr(‘totalPages’);
syncPaginationDotsWithCarouselPages(totalPages);
/* Resize event handler to re-calculate the pagination dots count based on orientation */
window.addEventListener(‘resize’, function() {
carousel.resize();
totalPages = carousel.getAttr(‘totalPages’);
syncPaginationDotsWithCarouselPages(totalPages);
});
A.declarative(paginationAction, ‘click keydown’, function(event){
var isClick = event.type === ‘click’;
var isKeydown = event.type === ‘keydown’;
var isEnter = isKeydown && event.$event.keyCode === ENTER_KEY_CODE;
var isEsc = isKeydown && event.$event.keyCode === ESCAPE_KEY_CODE;
var isLeftArrow = isKeydown && event.$event.keyCode === LEFT_ARROW_KEY;
var isRightArrow = isKeydown && event.$event.keyCode === RIGHT_ARROW_KEY;
var isHome = isKeydown && event.$event.keyCode === HOME_KEY;
var isEnd = isKeydown && event.$event.keyCode === END_KEY;
if (isClick || isEnter) {
var data = event.data;
carousel.gotoPage(data.page);
} else if (isEsc) {
event.$target.blur();
} else if (isLeftArrow || isRightArrow || isHome || isEnd) {
event.$event.preventDefault();
const dots = A.$(paginationGroup + ” .carousel-slider-circle”);
const currentIndex = dots.index(event.$target);
let nextIndex;
if (isLeftArrow) {
nextIndex = currentIndex > 0 ? currentIndex – 1 : dots.length – 1;
} else if (isRightArrow) {
nextIndex = currentIndex < dots.length – 1 ? currentIndex + 1 : 0;
} else if (isHome) {
nextIndex = 0;
} else if (isEnd) {
nextIndex = dots.length – 1;
}
dots.eq(nextIndex).focus();
carousel.gotoPage(nextIndex + 1);
}
});
} catch (e) {
P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');
}
});
});
}
});
});
-
Can a power extension cable cause night vision failure on the outdoor PTZ camera?
To avoid night vision failure, do not use power extension cables; if necessary, use only a pure copper cable ≤16 ft (5m) with the original HXVIEW 12V 3A adapter. Longer or poor‑quality cables risk insufficient power and night vision issues.
-
How to set the position where the camera automatically returns after tracking ends?
Control the camera to rotate to the desired position, open the CamHipro APP, find “Preset Position”, then enter “92” and click “Set”.
-
How do I turn on the automatic tracking feature?
Open the CamHipro APP, find “Preset Position”, enter “92”, and click “Call”.
-
How to set the cruise point?
Preset positions 1 to 30 are cruise points. You can control the camera to rotate to the desired position, then open the “Preset Position” interface, enter “1”, click “Set”, and so on to set up to 30 cruise points.
-
How to turn on the automatic cruise function?
When you have set more than 3 cruise points, open the “Preset Position” interface, enter “93”, and click “Call”.
PTZ Cams Comparison
WiFi/Ethernet |
Network Connection |
WiFi/Ethernet |
4K |
Resolution |
4K |
50X Optical Zoom |
Zoom |
30X Optical Zoom |
360° Continuous |
Pan |
355° |
200°/s |
Rotation Speed |
30°/s |
Super IR Ultra |
Infrared light |
Super IR |
Humanoid/Vehicle/Pet |
AI Detection |
Humanoid/Vehicle |
WiFi/Ethernet |
Network Connection |
WiFi/Ethernet |
4K |
Resolution |
4K |
50X Optical Zoom |
Zoom |
10X Hybrid Zoom |
360° Continuous |
Pan |
355° |
200°/s |
Rotation Speed |
15°/s |
Super IR Ultra |
Infrared light |
IR |
Humanoid/Vehicle/Pet |
AI Detection |
Humanoid/Vehicle/Pet |
WiFi/Ethernet |
Network Connection |
3G/4G LTE(Non-WiFi) |
4K |
Resolution |
2K |
50X Optical Zoom |
Zoom |
4X Digital Zoom |
360° Continuous |
Pan |
355° |
200°/s |
Rotation Speed |
15°/s |
Super IR Ultra |
Infrared light |
IR |
Humanoid/Vehicle/Pet |
AI Detection |
Humanoid |
-
BU-H800
-
BU-H500
-
BU-G60
P.now(“premium-aplus-9-carousel-6”).execute(“init-pagination-carousel”, function(init) {
if (init) {
return;
}
P.register(“premium-aplus-9-carousel-6”, function() {
return function() {
P.when(“A”, “jQuery”, “a-carousel-framework”, “ready”).execute(“paginate-carousel”, function (A, $, framework) {
const ENTER_KEY_CODE = 13;
const ESCAPE_KEY_CODE = 27;
const LEFT_ARROW_KEY = 37;
const RIGHT_ARROW_KEY = 39;
const HOME_KEY = 36;
const END_KEY = 35;
var moduleId = “6”;
var carouselName = “premium-aplus-9-carousel-6”;
var paginationAction = “aplus-pagination-dot-action-” + moduleId + “-” + carouselName;
var paginationGroup = “#aplus-pagination-group-” + moduleId + “-” + carouselName;
/* If the carousel goes to a new page */
A.on(“a:carousel:”+carouselName+”:change:pageNumber”, function (data) {
A.$(paginationGroup+” .carousel-slider-circle”).removeClass(“aplus-carousel-active”).attr(‘aria-selected’, ‘false’).attr(‘tabindex’, -1)
.eq(data.newValue – 1).addClass(“aplus-carousel-active”).attr(‘aria-selected’, ‘true’).attr(‘tabindex’, 0);
});
function syncPaginationDotsWithCarouselPages(numPages) {
const parentElement = document.querySelector(paginationGroup);
if (parentElement && parentElement.children) {
const children = parentElement.children;
for (let i = 0; i = numPages) {
// If number of dots > num of pages, we should hide other dots
children[i].classList.add(‘aplus-pagination-dot–display-none’);
} else if (children[i].classList.contains(‘aplus-pagination-dot–display-none’)) {
// Reset display of dots if it was hidden before
children[i].classList.remove(‘aplus-pagination-dot–display-none’);
}
}
}
}
framework.onInit(carouselName, function (carousel) {
try {
var totalPages = carousel.getAttr(‘totalPages’);
syncPaginationDotsWithCarouselPages(totalPages);
/* Resize event handler to re-calculate the pagination dots count based on orientation */
window.addEventListener(‘resize’, function() {
carousel.resize();
totalPages = carousel.getAttr(‘totalPages’);
syncPaginationDotsWithCarouselPages(totalPages);
});
A.declarative(paginationAction, ‘click keydown’, function(event){
var isClick = event.type === ‘click’;
var isKeydown = event.type === ‘keydown’;
var isEnter = isKeydown && event.$event.keyCode === ENTER_KEY_CODE;
var isEsc = isKeydown && event.$event.keyCode === ESCAPE_KEY_CODE;
var isLeftArrow = isKeydown && event.$event.keyCode === LEFT_ARROW_KEY;
var isRightArrow = isKeydown && event.$event.keyCode === RIGHT_ARROW_KEY;
var isHome = isKeydown && event.$event.keyCode === HOME_KEY;
var isEnd = isKeydown && event.$event.keyCode === END_KEY;
if (isClick || isEnter) {
var data = event.data;
carousel.gotoPage(data.page);
} else if (isEsc) {
event.$target.blur();
} else if (isLeftArrow || isRightArrow || isHome || isEnd) {
event.$event.preventDefault();
const dots = A.$(paginationGroup + ” .carousel-slider-circle”);
const currentIndex = dots.index(event.$target);
let nextIndex;
if (isLeftArrow) {
nextIndex = currentIndex > 0 ? currentIndex – 1 : dots.length – 1;
} else if (isRightArrow) {
nextIndex = currentIndex < dots.length – 1 ? currentIndex + 1 : 0;
} else if (isHome) {
nextIndex = 0;
} else if (isEnd) {
nextIndex = dots.length – 1;
}
dots.eq(nextIndex).focus();
carousel.gotoPage(nextIndex + 1);
}
});
} catch (e) {
P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');
}
});
});
}
});
});
.aplus-v2 .aplus-content-wrapper {
position: relative;
overflow: hidden;
}
.aplus-v2 .container-with-background-image {
width: 100%;
height: 100%;
background-repeat: no-repeat;
background-size: cover;
}
function logShoppableMetrics(moduleName, showsAddToCart) {
if (window.ue && window.ue.count) {
window.ue.count(“aplus:shoppable:” + moduleName + “:addToCart”, showsAddToCart ? 1 : 0);
}
}
From the brand
.aplus-v2 .apm-brand-story-carousel-container {
position: relative;
}
.aplus-v2 .apm-brand-story-carousel-hero-container,
.aplus-v2 .apm-brand-story-carousel-hero-container > div {
position: absolute;
width: 100%;
}
/*
Ensuring the carousel takes only the space it needs.
The sizes need to be set again on the absolutely positioned elements so they can take up space.
*/
.aplus-v2 .apm-brand-story-carousel-container,
.aplus-v2 .apm-brand-story-carousel-hero-container {
height: 625px;
width: 100%;
max-width: 1464px;
margin-left: auto;
margin-right: auto;
overflow: hidden;
}
.aplus-v2 .apm-brand-story-carousel-hero-container,
.aplus-v2 .apm-brand-story-carousel-hero-container > div {
height: 625px;
}
.aplus-v2 .apm-brand-story-carousel.a-carousel-container {
padding: 0px;
}
/*
This centers the carousel vertically on top of the hero image container and after the logo area (125px).
Margin-top = (heroHeight – cardHeight – logoAreaHeight) / 2 + logoAreaHeight
*/
.aplus-v2 .apm-brand-story-carousel .a-carousel-row-inner {
margin-top: 149px;
}
/*
Cards need to have a width set, otherwise they default to 50px or so.
All cards must have the same width. The carousel will resize itself so all cards take the width of the largest card.
The left margin is for leaving a space between each card.
*/
.aplus-v2 .apm-brand-story-carousel .a-carousel-card {
width: 362px;
margin-left: 30px !important;
}
/* styling the navigation buttons so they are taller, flush with the sides, and have a clean white background */
.aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-left,
.aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-right {
padding: 0px;
}
.aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-left .a-button-image,
.aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-right .a-button-image {
border: none;
margin: 0px;
}
.aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-left .a-button-image .a-button-inner,
.aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-right .a-button-image .a-button-inner {
background: #fff;
padding: 20px 6px;
}
.aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-left .a-button-image .a-button-inner {
border-radius: 0px 4px 4px 0px;
}
.aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-right .a-button-image .a-button-inner {
border-radius: 4px 0px 0px 4px;
}
-
- Founded in 2009, HXVIEW is the cutting-edge global developer of smart home security products.
- For many years, we have been committed to providing the best security products for homes and businesses, focusing on stability, intelligence and user experience.
- So far, our smart home security products have been widely used in homes, offices, schools, retail, hotels, warehouses, factories and other fields.
-
HXVIEW Security Solution
-






Reviews
There are no reviews yet.