diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index ca1a457..51e15b5 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -156,8 +156,12 @@
   deps = [
     ":buffer",
     ":byte_order",
+    "../api:array_view",
   ]
-  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
+  absl_deps = [
+    "//third_party/abseil-cpp/absl/base:core_headers",
+    "//third_party/abseil-cpp/absl/strings",
+  ]
 }
 
 rtc_library("buffer_queue") {
diff --git a/rtc_base/byte_buffer.cc b/rtc_base/byte_buffer.cc
index 4f4235c..3f0e61e 100644
--- a/rtc_base/byte_buffer.cc
+++ b/rtc_base/byte_buffer.cc
@@ -19,6 +19,10 @@
 ByteBufferWriter::ByteBufferWriter(const char* bytes, size_t len)
     : ByteBufferWriterT(bytes, len) {}
 
+ByteBufferReader::ByteBufferReader(rtc::ArrayView<const uint8_t> bytes) {
+  Construct(bytes.data(), bytes.size());
+}
+
 ByteBufferReader::ByteBufferReader(const char* bytes, size_t len) {
   Construct(reinterpret_cast<const uint8_t*>(bytes), len);
 }
@@ -27,10 +31,6 @@
   Construct(reinterpret_cast<const uint8_t*>(bytes), strlen(bytes));
 }
 
-ByteBufferReader::ByteBufferReader(const Buffer& buf) {
-  Construct(buf.data(), buf.size());
-}
-
 ByteBufferReader::ByteBufferReader(const ByteBufferWriter& buf) {
   Construct(reinterpret_cast<const uint8_t*>(buf.Data()), buf.Length());
 }
diff --git a/rtc_base/byte_buffer.h b/rtc_base/byte_buffer.h
index 3161cf4..fe17da2 100644
--- a/rtc_base/byte_buffer.h
+++ b/rtc_base/byte_buffer.h
@@ -16,7 +16,9 @@
 
 #include <string>
 
+#include "absl/base/attributes.h"
 #include "absl/strings/string_view.h"
+#include "api/array_view.h"
 #include "rtc_base/buffer.h"
 #include "rtc_base/byte_order.h"
 
@@ -124,11 +126,12 @@
  public:
   ByteBufferReader(const char* bytes, size_t len);
 
+  explicit ByteBufferReader(
+      rtc::ArrayView<const uint8_t> bytes ABSL_ATTRIBUTE_LIFETIME_BOUND);
+
   // Initializes buffer from a zero-terminated string.
   explicit ByteBufferReader(const char* bytes);
 
-  explicit ByteBufferReader(const Buffer& buf);
-
   explicit ByteBufferReader(const ByteBufferWriter& buf);
 
   ByteBufferReader(const ByteBufferReader&) = delete;
diff --git a/rtc_base/byte_buffer_unittest.cc b/rtc_base/byte_buffer_unittest.cc
index 4f8043c..615237c 100644
--- a/rtc_base/byte_buffer_unittest.cc
+++ b/rtc_base/byte_buffer_unittest.cc
@@ -12,6 +12,8 @@
 
 #include <string.h>
 
+#include <cstdint>
+
 #include "rtc_base/arraysize.h"
 #include "rtc_base/byte_order.h"
 #include "test/gtest.h"
@@ -247,4 +249,19 @@
   EXPECT_EQ(size, read_buffer.Length());
 }
 
+TEST(ByteBufferTest, ReadFromArrayView) {
+  const uint8_t buf[] = {'a', 'b', 'c'};
+  ArrayView<const uint8_t> view(buf, 3);
+
+  ByteBufferReader read_buffer(view);
+  uint8_t val;
+  EXPECT_TRUE(read_buffer.ReadUInt8(&val));
+  EXPECT_EQ(val, 'a');
+  EXPECT_TRUE(read_buffer.ReadUInt8(&val));
+  EXPECT_EQ(val, 'b');
+  EXPECT_TRUE(read_buffer.ReadUInt8(&val));
+  EXPECT_EQ(val, 'c');
+  EXPECT_FALSE(read_buffer.ReadUInt8(&val));
+}
+
 }  // namespace rtc
