CINXE.COM

gocvwinmedia package - gitee.com/zengyongheng/gocvwinmedia - Go Packages

<!DOCTYPE html> <html lang="en" data-layout="responsive" data-local=""> <head> <script> window.addEventListener('error', window.__err=function f(e){f.p=f.p||[];f.p.push(e)}); </script> <script> (function() { const theme = document.cookie.match(/prefers-color-scheme=(light|dark|auto)/)?.[1] if (theme) { document.querySelector('html').setAttribute('data-theme', theme); } }()) </script> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta class="js-gtmID" data-gtmid="GTM-W8MVQXG"> <link rel="shortcut icon" href="/static/shared/icon/favicon.ico"> <link rel="canonical" href="https://pkg.go.dev/gitee.com/zengyongheng/gocvwinmedia"> <link href="/static/frontend/frontend.min.css?version=prod-frontend-00095-8lw" rel="stylesheet"> <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="Go Packages"> <title>gocvwinmedia package - gitee.com/zengyongheng/gocvwinmedia - Go Packages</title> <link href="/static/frontend/unit/unit.min.css?version=prod-frontend-00095-8lw" rel="stylesheet"> <link href="/static/frontend/unit/main/main.min.css?version=prod-frontend-00095-8lw" rel="stylesheet"> </head> <body> <script> function loadScript(src, mod = true) { let s = document.createElement('script'); s.src = src; if (mod) { s.type = 'module'; s.async = true; s.defer = true } document.head.appendChild(s); } loadScript("/third_party/dialog-polyfill/dialog-polyfill.js", false) loadScript("/static/frontend/frontend.js"); </script> <header class="go-Header go-Header--full js-siteHeader"> <div class="go-Header-inner go-Header-inner--dark"> <nav class="go-Header-nav"> <a href="https://go.dev/" class="js-headerLogo" data-gtmc="nav link" data-test-id="go-header-logo-link" role="heading" aria-level="1"> <img class="go-Header-logo" src="/static/shared/logo/go-white.svg" alt="Go"> </a> <div class="skip-navigation-wrapper"> <a class="skip-to-content-link" aria-label="Skip to main content" href="#main-content"> Skip to Main Content </a> </div> <div class="go-Header-rightContent"> <div class="go-SearchForm js-searchForm"> <form class="go-InputGroup go-ShortcutKey go-SearchForm-form" action="/search" data-shortcut="/" data-shortcut-alt="search" data-gtmc="search form" aria-label="Search for a package" role="search" > <input name="q" class="go-Input js-searchFocus" aria-label="Search for a package" type="search" autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" placeholder="Search packages or symbols" value="" /> <input name="m" value="" hidden> <button class="go-Button go-Button--inverted" aria-label="Submit search"> <img class="go-Icon" height="24" width="24" src="/static/shared/icon/search_gm_grey_24dp.svg" alt="" /> </button> </form> <button class="go-SearchForm-expandSearch js-expandSearch" data-gtmc="nav button" aria-label="Open search" data-test-id="expand-search"> <img class="go-Icon go-Icon--inverted" height="24" width="24" src="/static/shared/icon/search_gm_grey_24dp.svg" alt=""> </button> </div> <ul class="go-Header-menu"> <li class="go-Header-menuItem"> <a class="js-desktop-menu-hover" href="#" data-gtmc="nav link"> Why Go <img class="go-Icon" height="24" width="24" src="/static/shared/icon/arrow_drop_down_gm_grey_24dp.svg" alt="submenu dropdown icon"> </a> <ul class="go-Header-submenu go-Header-submenu--why js-desktop-submenu-hover" aria-label="submenu"> <li class="go-Header-submenuItem"> <div> <a href="https://go.dev/solutions#case-studies"> <span>Case Studies</span> </a> </div> <p>Common problems companies solve with Go</p> </li> <li class="go-Header-submenuItem"> <div> <a href="https://go.dev/solutions#use-cases"> <span>Use Cases</span> </a> </div> <p>Stories about how and why companies use Go</p> </li> <li class="go-Header-submenuItem"> <div> <a href="https://go.dev/security/policy/"> <span>Security Policy</span> </a> </div> <p>How Go can help keep you secure by default</p> </li> </ul> </li> <li class="go-Header-menuItem"> <a href="https://go.dev/learn/" data-gtmc="nav link">Learn</a> </li> <li class="go-Header-menuItem"> <a class="js-desktop-menu-hover" href="#" data-gtmc="nav link"> Docs <img class="go-Icon" height="24" width="24" src="/static/shared/icon/arrow_drop_down_gm_grey_24dp.svg" alt="submenu dropdown icon"> </a> <ul class="go-Header-submenu go-Header-submenu--docs js-desktop-submenu-hover" aria-label="submenu"> <li class="go-Header-submenuItem"> <div> <a href="https://go.dev/doc/effective_go"> <span>Effective Go</span> </a> </div> <p>Tips for writing clear, performant, and idiomatic Go code</p> </li> <li class="go-Header-submenuItem"> <div> <a href="https://go.dev/doc/"> <span>Go User Manual</span> </a> </div> <p>A complete introduction to building software with Go</p> </li> <li class="go-Header-submenuItem"> <div> <a href="https://pkg.go.dev/std"> <span>Standard library</span> </a> </div> <p>Reference documentation for Go's standard library</p> </li> <li class="go-Header-submenuItem"> <div> <a href="https://go.dev/doc/devel/release"> <span>Release Notes</span> </a> </div> <p>Learn what's new in each Go release</p> </li> </ul> </li> <li class="go-Header-menuItem go-Header-menuItem--active"> <a href="/" data-gtmc="nav link">Packages</a> </li> <li class="go-Header-menuItem"> <a class="js-desktop-menu-hover" href="#" data-gtmc="nav link"> Community <img class="go-Icon" height="24" width="24" src="/static/shared/icon/arrow_drop_down_gm_grey_24dp.svg" alt="submenu dropdown icon"> </a> <ul class="go-Header-submenu go-Header-submenu--community js-desktop-submenu-hover" aria-label="submenu"> <li class="go-Header-submenuItem"> <div> <a href="https://go.dev/talks/"> <span>Recorded Talks</span> </a> </div> <p>Videos from prior events</p> </li> <li class="go-Header-submenuItem"> <div> <a href="https://www.meetup.com/pro/go"> <span>Meetups</span> <i class="material-icons"> <img class="go-Icon" height="24" width="24" src="/static/shared/icon/launch_gm_grey_24dp.svg" alt=""> </i> </a> </div> <p>Meet other local Go developers</p> </li> <li class="go-Header-submenuItem"> <div> <a href="https://github.com/golang/go/wiki/Conferences"> <span>Conferences</span> <i class="material-icons"> <img class="go-Icon" height="24" width="24" src="/static/shared/icon/launch_gm_grey_24dp.svg" alt=""> </i> </a> </div> <p>Learn and network with Go developers from around the world</p> </li> <li class="go-Header-submenuItem"> <div> <a href="https://go.dev/blog"> <span>Go blog</span> </a> </div> <p>The Go project's official blog.</p> </li> <li class="go-Header-submenuItem"> <div> <a href="https://go.dev/help"> <span>Go project</span> </a> </div> <p>Get help and stay informed from Go</p> </li> <li class="go-Header-submenuItem"> <div> Get connected </div> <p></p> <div class="go-Header-socialIcons"> <a class="go-Header-socialIcon" aria-label="Get connected with google-groups (Opens in new window)" title="Get connected with google-groups (Opens in new window)" href="https://groups.google.com/g/golang-nuts"> <img src="/static/shared/logo/social/google-groups.svg" /> </a> <a class="go-Header-socialIcon" aria-label="Get connected with github (Opens in new window)" title="Get connected with github (Opens in new window)" href="https://github.com/golang"> <img src="/static/shared/logo/social/github.svg" /> </a> <a class="go-Header-socialIcon" aria-label="Get connected with twitter (Opens in new window)" title="Get connected with twitter (Opens in new window)" href="https://twitter.com/golang"> <img src="/static/shared/logo/social/twitter.svg" /> </a> <a class="go-Header-socialIcon" aria-label="Get connected with reddit (Opens in new window)" title="Get connected with reddit (Opens in new window)" href="https://www.reddit.com/r/golang/"> <img src="/static/shared/logo/social/reddit.svg" /> </a> <a class="go-Header-socialIcon" aria-label="Get connected with slack (Opens in new window)" title="Get connected with slack (Opens in new window)" href="https://invite.slack.golangbridge.org/"> <img src="/static/shared/logo/social/slack.svg" /> </a> <a class="go-Header-socialIcon" aria-label="Get connected with stack-overflow (Opens in new window)" title="" href="https://stackoverflow.com/collectives/go"> <img src="/static/shared/logo/social/stack-overflow.svg" /> </a> </div> </li> </ul> </li> </ul> <button class="go-Header-navOpen js-headerMenuButton go-Header-navOpen--white" data-gtmc="nav button" aria-label="Open navigation"> </button> </div> </nav> </div> </header> <aside class="go-NavigationDrawer js-header"> <nav class="go-NavigationDrawer-nav"> <div class="go-NavigationDrawer-header"> <a href="https://go.dev/"> <img class="go-NavigationDrawer-logo" src="/static/shared/logo/go-blue.svg" alt="Go."> </a> </div> <ul class="go-NavigationDrawer-list"> <li class="go-NavigationDrawer-listItem js-mobile-subnav-trigger go-NavigationDrawer-hasSubnav"> <a href="#"> <span>Why Go</span> <i class="material-icons"> <img class="go-Icon" height="24" width="24" src="/static/shared/icon/navigate_next_gm_grey_24dp.svg" alt=""> </i> </a> <div class="go-NavigationDrawer go-NavigationDrawer-submenuItem"> <div class="go-NavigationDrawer-nav"> <div class="go-NavigationDrawer-header"> <a href="#"> <i class="material-icons"> <img class="go-Icon" height="24" width="24" src="/static/shared/icon/navigate_before_gm_grey_24dp.svg" alt=""> </i> Why Go </a> </div> <ul class="go-NavigationDrawer-list"> <li class="go-NavigationDrawer-listItem"> <a href="https://go.dev/solutions#case-studies"> Case Studies </a> </li> <li class="go-NavigationDrawer-listItem"> <a href="https://go.dev/solutions#use-cases"> Use Cases </a> </li> <li class="go-NavigationDrawer-listItem"> <a href="https://go.dev/security/policy/"> Security Policy </a> </li> </ul> </div> </div> </li> <li class="go-NavigationDrawer-listItem"> <a href="https://go.dev/learn/">Learn</a> </li> <li class="go-NavigationDrawer-listItem js-mobile-subnav-trigger go-NavigationDrawer-hasSubnav"> <a href="#"> <span>Docs</span> <i class="material-icons"> <img class="go-Icon" height="24" width="24" src="/static/shared/icon/navigate_next_gm_grey_24dp.svg" alt=""> </i> </a> <div class="go-NavigationDrawer go-NavigationDrawer-submenuItem"> <div class="go-NavigationDrawer-nav"> <div class="go-NavigationDrawer-header"> <a href="#"><i class="material-icons"> <img class="go-Icon" height="24" width="24" src="/static/shared/icon/navigate_before_gm_grey_24dp.svg" alt=""> </i> Docs </a> </div> <ul class="go-NavigationDrawer-list"> <li class="go-NavigationDrawer-listItem"> <a href="https://go.dev/doc/effective_go"> Effective Go </a> </li> <li class="go-NavigationDrawer-listItem"> <a href="https://go.dev/doc/"> Go User Manual </a> </li> <li class="go-NavigationDrawer-listItem"> <a href="https://pkg.go.dev/std"> Standard library </a> </li> <li class="go-NavigationDrawer-listItem"> <a href="https://go.dev/doc/devel/release"> Release Notes </a> </li> </ul> </div> </div> </li> <li class="go-NavigationDrawer-listItem go-NavigationDrawer-listItem--active"> <a href="/">Packages</a> </li> <li class="go-NavigationDrawer-listItem js-mobile-subnav-trigger go-NavigationDrawer-hasSubnav"> <a href="#"> <span>Community</span> <i class="material-icons"> <img class="go-Icon" height="24" width="24" src="/static/shared/icon/navigate_next_gm_grey_24dp.svg" alt=""> </i> </a> <div class="go-NavigationDrawer go-NavigationDrawer-submenuItem"> <div class="go-NavigationDrawer-nav"> <div class="go-NavigationDrawer-header"> <a href="#"> <i class="material-icons"> <img class="go-Icon" height="24" width="24" src="/static/shared/icon/navigate_before_gm_grey_24dp.svg" alt=""> </i> Community </a> </div> <ul class="go-NavigationDrawer-list"> <li class="go-NavigationDrawer-listItem"> <a href="https://go.dev/talks/"> Recorded Talks </a> </li> <li class="go-NavigationDrawer-listItem"> <a href="https://www.meetup.com/pro/go"> Meetups <i class="material-icons"> <img class="go-Icon" height="24" width="24" src="/static/shared/icon/launch_gm_grey_24dp.svg" alt=""> </i> </a> </li> <li class="go-NavigationDrawer-listItem"> <a href="https://github.com/golang/go/wiki/Conferences"> Conferences <i class="material-icons"> <img class="go-Icon" height="24" width="24" src="/static/shared/icon/launch_gm_grey_24dp.svg" alt=""> </i> </a> </li> <li class="go-NavigationDrawer-listItem"> <a href="https://go.dev/blog"> Go blog </a> </li> <li class="go-NavigationDrawer-listItem"> <a href="https://go.dev/help"> Go project </a> </li> <li class="go-NavigationDrawer-listItem"> <div>Get connected</div> <div class="go-Header-socialIcons"> <a class="go-Header-socialIcon" href="https://groups.google.com/g/golang-nuts"><img src="/static/shared/logo/social/google-groups.svg" /></a> <a class="go-Header-socialIcon" href="https://github.com/golang"><img src="/static/shared/logo/social/github.svg" /></a> <a class="go-Header-socialIcon" href="https://twitter.com/golang"><img src="/static/shared/logo/social/twitter.svg" /></a> <a class="go-Header-socialIcon" href="https://www.reddit.com/r/golang/"><img src="/static/shared/logo/social/reddit.svg" /></a> <a class="go-Header-socialIcon" href="https://invite.slack.golangbridge.org/"><img src="/static/shared/logo/social/slack.svg" /></a> <a class="go-Header-socialIcon" href="https://stackoverflow.com/collectives/go"><img src="/static/shared/logo/social/stack-overflow.svg" /></a> </div> </li> </ul> </div> </div> </li> </ul> </nav> </aside> <div class="go-NavigationDrawer-scrim js-scrim" role="presentation"></div> <main class="go-Main" id="main-content"> <div class="go-Main-banner" role="alert"></div> <header class="go-Main-header js-mainHeader"> <nav class="go-Main-headerBreadcrumb go-Breadcrumb" aria-label="Breadcrumb" data-test-id="UnitHeader-breadcrumb"> <ol> <li data-test-id="UnitHeader-breadcrumbItem"> <a href="/" data-gtmc="breadcrumb link">Discover Packages</a> </li> <li> <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e" data-gtmc="breadcrumb link" aria-current="location" data-test-id="UnitHeader-breadcrumbCurrent"> gitee.com/zengyongheng/gocvwinmedia </a> <button class="go-Button go-Button--inline go-Clipboard js-clipboard" title="Copy path to clipboard.&#10;&#10;gitee.com/zengyongheng/gocvwinmedia" aria-label="Copy Path to Clipboard" data-to-copy="gitee.com/zengyongheng/gocvwinmedia" data-gtmc="breadcrumbs button" > <img class="go-Icon go-Icon--accented" height="24" width="24" src="/static/shared/icon/content_copy_gm_grey_24dp.svg" alt="" > </button> </li> </ol> </nav> <div class="go-Main-headerContent"> <div class="go-Main-headerTitle js-stickyHeader"> <a class="go-Main-headerLogo" href="https://go.dev/" aria-hidden="true" tabindex="-1" data-gtmc="header link" aria-label="Link to Go Homepage"> <img height="78" width="207" src="/static/shared/logo/go-blue.svg" alt="Go"> </a> <h1 class="UnitHeader-titleHeading" data-test-id="UnitHeader-title">gocvwinmedia</h1> <span class="go-Chip go-Chip--inverted">package</span> <span class="go-Chip go-Chip--inverted">module</span> <button class="go-Button go-Button--inline go-Clipboard js-clipboard" title="Copy path to clipboard.&#10;&#10;gitee.com/zengyongheng/gocvwinmedia" aria-label="Copy Path to Clipboard" data-to-copy="gitee.com/zengyongheng/gocvwinmedia" data-gtmc="title button" tabindex="-1" > <img class="go-Icon go-Icon--accented" height="24" width="24" src="/static/shared/icon/content_copy_gm_grey_24dp.svg" alt="" /> </button> </div> <div class="go-Main-headerDetails"> <span class="go-Main-headerDetailItem" data-test-id="UnitHeader-version"> <a href="?tab=versions" aria-label="Version: v0.0.0-...-0bf383f" data-gtmc="header link" aria-describedby="version-description"> <span class="go-textSubtle" aria-hidden="true">Version: </span> v0.0.0-...-0bf383f </a> <div class="screen-reader-only" id="version-description" hidden> Opens a new window with list of versions in this module. </div> <span class="DetailsHeader-badge--latest" data-test-id="UnitHeader-minorVersionBanner"> <span class="go-Chip DetailsHeader-span--latest">Latest</span> <span class="go-Chip DetailsHeader-span--notAtLatest"> Latest <details class="go-Tooltip js-tooltip" data-gtmc="tooltip"> <summary> <img class="go-Icon go-Icon--inverted" height="24" width="24" src="/static/shared/icon/alert_gm_grey_24dp.svg" alt="Warning"> </summary> <p>This package is not in the latest version of its module.</p> </details> </span> <a href="/gitee.com/zengyongheng/gocvwinmedia" aria-label="Go to Latest Version" data-gtmc="header link"> <span class="go-Chip go-Chip--alert DetailsHeader-span--goToLatest">Go to latest</span> </a> </span> </span> <span class="go-Main-headerDetailItem" data-test-id="UnitHeader-commitTime"> Published: Jul 7, 2021 </span> <span class="go-Main-headerDetailItem" data-test-id="UnitHeader-licenses"> License: <a href="/gitee.com/zengyongheng/gocvwinmedia?tab=licenses" data-test-id="UnitHeader-license" data-gtmc="header link" aria-describedby="license-description">MIT</a> </span> <div class="screen-reader-only" id="license-description" hidden> Opens a new window with license information. </div> <span class="go-Main-headerDetailItem" data-test-id="UnitHeader-imports"> <a href="/gitee.com/zengyongheng/gocvwinmedia?tab=imports" aria-label="Imports: 18" data-gtmc="header link" aria-describedby="imports-description"> <span class="go-textSubtle">Imports: </span>18 </a> </span> <div class="screen-reader-only" id="imports-description" hidden> Opens a new window with list of imports. </div> <span class="go-Main-headerDetailItem" data-test-id="UnitHeader-importedby"> <a href="/gitee.com/zengyongheng/gocvwinmedia?tab=importedby" aria-label="Imported By: 0" data-gtmc="header link" aria-describedby="importedby-description"> <span class="go-textSubtle">Imported by: </span>0 </a> </span> <div class="screen-reader-only" id="importedby-description" hidden> Opens a new window with list of known importers. </div> </div> <div class="UnitHeader-overflowContainer"> <svg class="UnitHeader-overflowImage" xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"> <path d="M0 0h24v24H0z" fill="none"/> <path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/> </svg> <select class="UnitHeader-overflowSelect js-selectNav" tabindex="-1"> <option value="/">Main</option> <option value="/gitee.com/zengyongheng/gocvwinmedia?tab=versions"> Versions </option> <option value="/gitee.com/zengyongheng/gocvwinmedia?tab=licenses"> Licenses </option> <option value="/gitee.com/zengyongheng/gocvwinmedia?tab=imports"> Imports </option> <option value="/gitee.com/zengyongheng/gocvwinmedia?tab=importedby"> Imported By </option> </select> </div> </div> </header> <aside class="go-Main-aside js-mainAside"> <div class="UnitMeta"> <h2 class="go-textLabel">Details</h2> <ul class="UnitMeta-details"> <li> <details class="go-Tooltip js-tooltip" data-gtmc="tooltip"> <summary class="go-textSubtle"> <img class="go-Icon go-Icon--accented" tabindex="0" role="button"src="/static/shared/icon/check_circle_gm_grey_24dp.svg" alt="checked" aria-label="Valid file, toggle tooltip"height="24" width="24"> Valid <a href="https://gitee.com/zengyongheng/gocvwinmedia/tree/0bf383f7f91e/go.mod" target="_blank" rel="noopener">go.mod</a> file <img class="go-Icon" role="button" tabindex="0" src="/static/shared/icon/help_gm_grey_24dp.svg" alt="" aria-label="Toggle go.mod validity tooltip" height="24" width="24"> </summary> <p aria-live="polite" role="tooltip"> The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go. </p> </details> </li> <li> <details class="go-Tooltip js-tooltip" data-gtmc="tooltip"> <summary class="go-textSubtle"> <img class="go-Icon go-Icon--accented" tabindex="0" role="button"src="/static/shared/icon/check_circle_gm_grey_24dp.svg" alt="checked" aria-label="Valid file, toggle tooltip"height="24" width="24"> Redistributable license <img class="go-Icon" role="button" tabindex="0" src="/static/shared/icon/help_gm_grey_24dp.svg" alt="" aria-label="Toggle redistributable help tooltip" height="24" width="24"> </summary> <p aria-live="polite" role="tooltip"> Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed. </p> </details> </li> <li> <details class="go-Tooltip js-tooltip" data-gtmc="tooltip"> <summary class="go-textSubtle"> <img class="go-Icon" tabindex="0" role="button"src="/static/shared/icon/cancel_gm_grey_24dp.svg" alt="unchecked" aria-label="Missing or invalid file, toggle tooltip"height="24" width="24"> Tagged version <img class="go-Icon" role="button" tabindex="0" src="/static/shared/icon/help_gm_grey_24dp.svg" alt="" aria-label="Toggle tagged version tooltip" height="24" width="24"> </summary> <p aria-live="polite" role="tooltip">Modules with tagged versions give importers more predictable builds.</p> </details> </li> <li> <details class="go-Tooltip js-tooltip" data-gtmc="tooltip"> <summary class="go-textSubtle"> <img class="go-Icon" tabindex="0" role="button"src="/static/shared/icon/cancel_gm_grey_24dp.svg" alt="unchecked" aria-label="Missing or invalid file, toggle tooltip"height="24" width="24"> Stable version <img class="go-Icon" role="button" tabindex="0" aria-label="Toggle stable version tooltip" src="/static/shared/icon/help_gm_grey_24dp.svg" alt="" height="24" width="24"> </summary> <p aria-live="polite" role="tooltip">When a project reaches major version v1 it is considered stable.</p> </details> </li> <li class="UnitMeta-detailsLearn"> <a href="/about#best-practices" data-gtmc="meta link">Learn more about best practices</a> </li> </ul> <h2 class="go-textLabel">Repository</h2> <div class="UnitMeta-repo"> <a href="https://gitee.com/zengyongheng/gocvwinmedia" title="https://gitee.com/zengyongheng/gocvwinmedia" target="_blank" rel="noopener"> gitee.com/zengyongheng/gocvwinmedia </a> </div> <h2 class="go-textLabel" data-test-id="links-heading">Links</h2> <ul class="UnitMeta-links"> <li> <a href="https://deps.dev/go/gitee.com%2Fzengyongheng%2Fgocvwinmedia/v0.0.0-20210707165908-0bf383f7f91e" title="View this module on Open Source Insights" target="_blank" rel="noopener" data-test-id="meta-link-depsdev"> <img class="depsdev-Icon" src="/static/shared/icon/depsdev-logo.svg" alt="Open Source Insights Logo" /> Open Source Insights </a> </li> </ul> </div> </aside> <nav class="go-Main-nav go-Main-nav--sticky js-mainNav" aria-label="Outline"> <div class="go-Main-navDesktop"> <div class="UnitOutline-jumpTo"> <button class="UnitOutline-jumpToInput go-ShortcutKey js-jumpToInput" aria-controls="jump-to-modal" aria-label="Open Jump to Identifier" data-shortcut="f" data-shortcut-alt="find" data-test-id="jump-to-button" data-gtmc="outline button"> Jump to ... </button> </div> <ul class="go-Tree js-tree" role="tree" aria-label="Outline"> <li> <a href="#section-documentation" data-gtmc="outline link"> Documentation </a> <ul> <li class="DocNav-overview"> <a href="#pkg-index" data-gtmc="doc outline link"> Index </a> </li> <li class="DocNav-constants"> <a href="#pkg-constants" data-gtmc="doc outline link"> Constants </a> </li> <li class="DocNav-variables"> <a href="#pkg-variables" data-gtmc="doc outline link"> Variables </a> </li> <li class="DocNav-functions"> <a href="#pkg-functions" data-gtmc="doc outline link"> Functions </a> <ul> <li> <a href="#RegisterDriverAdapter" title="RegisterDriverAdapter(a, info)" data-gtmc="doc outline link"> RegisterDriverAdapter(a, info) </a> </li> </ul> </li> <li class="DocNav-types"> <a href="#pkg-types" data-gtmc="doc outline link"> Types </a> <ul> <li> <a href="#AudioSource" title="type AudioSource" data-gtmc="doc outline link"> type AudioSource </a> </li> <li> <a href="#AudioTrack" title="type AudioTrack" data-gtmc="doc outline link"> type AudioTrack </a> <ul> <li> <a href="#AudioTrack.Bind" title="(track) Bind(ctx)" data-gtmc="doc outline link"> (track) Bind(ctx) </a> </li> <li> <a href="#AudioTrack.Kind" title="(track) Kind()" data-gtmc="doc outline link"> (track) Kind() </a> </li> <li> <a href="#AudioTrack.NewEncodedIOReader" title="(track) NewEncodedIOReader(codecName)" data-gtmc="doc outline link"> (track) NewEncodedIOReader(codecName) </a> </li> <li> <a href="#AudioTrack.NewEncodedReader" title="(track) NewEncodedReader(codecName)" data-gtmc="doc outline link"> (track) NewEncodedReader(codecName) </a> </li> <li> <a href="#AudioTrack.NewRTPReader" title="(track) NewRTPReader(codecName, ssrc, mtu)" data-gtmc="doc outline link"> (track) NewRTPReader(codecName, ssrc, mtu) </a> </li> <li> <a href="#AudioTrack.OnEnded" title="(track) OnEnded(handler)" data-gtmc="doc outline link"> (track) OnEnded(handler) </a> </li> <li> <a href="#AudioTrack.StreamID" title="(track) StreamID()" data-gtmc="doc outline link"> (track) StreamID() </a> </li> <li> <a href="#AudioTrack.Transform" title="(track) Transform(fns)" data-gtmc="doc outline link"> (track) Transform(fns) </a> </li> <li> <a href="#AudioTrack.Unbind" title="(track) Unbind(ctx)" data-gtmc="doc outline link"> (track) Unbind(ctx) </a> </li> </ul> </li> <li> <a href="#CodecSelector" title="type CodecSelector" data-gtmc="doc outline link"> type CodecSelector </a> <ul> <li> <a href="#NewCodecSelector" title="NewCodecSelector(opts)" data-gtmc="doc outline link"> NewCodecSelector(opts) </a> </li> <li> <a href="#CodecSelector.Populate" title="(selector) Populate(setting)" data-gtmc="doc outline link"> (selector) Populate(setting) </a> </li> </ul> </li> <li> <a href="#CodecSelectorOption" title="type CodecSelectorOption" data-gtmc="doc outline link"> type CodecSelectorOption </a> <ul> <li> <a href="#WithAudioEncoders" title="WithAudioEncoders(encoders)" data-gtmc="doc outline link"> WithAudioEncoders(encoders) </a> </li> <li> <a href="#WithVideoEncoders" title="WithVideoEncoders(encoders)" data-gtmc="doc outline link"> WithVideoEncoders(encoders) </a> </li> </ul> </li> <li> <a href="#EncodedBuffer" title="type EncodedBuffer" data-gtmc="doc outline link"> type EncodedBuffer </a> </li> <li> <a href="#EncodedReadCloser" title="type EncodedReadCloser" data-gtmc="doc outline link"> type EncodedReadCloser </a> </li> <li> <a href="#MediaDeviceInfo" title="type MediaDeviceInfo" data-gtmc="doc outline link"> type MediaDeviceInfo </a> <ul> <li> <a href="#EnumerateDevices" title="EnumerateDevices()" data-gtmc="doc outline link"> EnumerateDevices() </a> </li> </ul> </li> <li> <a href="#MediaDeviceType" title="type MediaDeviceType" data-gtmc="doc outline link"> type MediaDeviceType </a> </li> <li> <a href="#MediaOption" title="type MediaOption" data-gtmc="doc outline link"> type MediaOption </a> </li> <li> <a href="#MediaStream" title="type MediaStream" data-gtmc="doc outline link"> type MediaStream </a> <ul> <li> <a href="#GetDisplayMedia" title="GetDisplayMedia(constraints)" data-gtmc="doc outline link"> GetDisplayMedia(constraints) </a> </li> <li> <a href="#GetUserMedia" title="GetUserMedia(constraints)" data-gtmc="doc outline link"> GetUserMedia(constraints) </a> </li> <li> <a href="#NewMediaStream" title="NewMediaStream(tracks)" data-gtmc="doc outline link"> NewMediaStream(tracks) </a> </li> </ul> </li> <li> <a href="#MediaStreamConstraints" title="type MediaStreamConstraints" data-gtmc="doc outline link"> type MediaStreamConstraints </a> </li> <li> <a href="#MediaTrackConstraints" title="type MediaTrackConstraints" data-gtmc="doc outline link"> type MediaTrackConstraints </a> </li> <li> <a href="#RTPReadCloser" title="type RTPReadCloser" data-gtmc="doc outline link"> type RTPReadCloser </a> </li> <li> <a href="#Source" title="type Source" data-gtmc="doc outline link"> type Source </a> </li> <li> <a href="#Track" title="type Track" data-gtmc="doc outline link"> type Track </a> <ul> <li> <a href="#NewAudioTrack" title="NewAudioTrack(source, selector)" data-gtmc="doc outline link"> NewAudioTrack(source, selector) </a> </li> <li> <a href="#NewVideoTrack" title="NewVideoTrack(source, selector)" data-gtmc="doc outline link"> NewVideoTrack(source, selector) </a> </li> </ul> </li> <li> <a href="#VideoSource" title="type VideoSource" data-gtmc="doc outline link"> type VideoSource </a> </li> <li> <a href="#VideoTrack" title="type VideoTrack" data-gtmc="doc outline link"> type VideoTrack </a> <ul> <li> <a href="#VideoTrack.Bind" title="(track) Bind(ctx)" data-gtmc="doc outline link"> (track) Bind(ctx) </a> </li> <li> <a href="#VideoTrack.Kind" title="(track) Kind()" data-gtmc="doc outline link"> (track) Kind() </a> </li> <li> <a href="#VideoTrack.NewEncodedIOReader" title="(track) NewEncodedIOReader(codecName)" data-gtmc="doc outline link"> (track) NewEncodedIOReader(codecName) </a> </li> <li> <a href="#VideoTrack.NewEncodedReader" title="(track) NewEncodedReader(codecName)" data-gtmc="doc outline link"> (track) NewEncodedReader(codecName) </a> </li> <li> <a href="#VideoTrack.NewRTPReader" title="(track) NewRTPReader(codecName, ssrc, mtu)" data-gtmc="doc outline link"> (track) NewRTPReader(codecName, ssrc, mtu) </a> </li> <li> <a href="#VideoTrack.OnEnded" title="(track) OnEnded(handler)" data-gtmc="doc outline link"> (track) OnEnded(handler) </a> </li> <li> <a href="#VideoTrack.StreamID" title="(track) StreamID()" data-gtmc="doc outline link"> (track) StreamID() </a> </li> <li> <a href="#VideoTrack.Transform" title="(track) Transform(fns)" data-gtmc="doc outline link"> (track) Transform(fns) </a> </li> <li> <a href="#VideoTrack.Unbind" title="(track) Unbind(ctx)" data-gtmc="doc outline link"> (track) Unbind(ctx) </a> </li> </ul> </li> </ul> </li> </ul> </li> <li> <a href="#section-sourcefiles" data-gtmc="outline link"> Source Files </a> </li> <li> <a href="#section-directories" data-gtmc="outline link"> Directories </a> </li> </ul> </div> <div class="go-Main-navMobile js-mainNavMobile"> <label class="go-Label"> <select class="go-Select"> <option selected disabled>Documentation</option> </select> </label> </div> </nav> <article class="go-Main-article js-mainContent"> <div class="UnitDetails" data-test-id="UnitDetails" style="display: block;"> <div class="UnitDetails-content js-unitDetailsContent" data-test-id="UnitDetails-content"> <div class="UnitDoc"> <h2 class="UnitDoc-title" id="section-documentation"> <img class="go-Icon" height="24" width="24" src="/static/shared/icon/code_gm_grey_24dp.svg" alt=""> Documentation <a class="UnitDoc-idLink" href="#section-documentation" title="Go to Documentation" aria-label="Go to Documentation">露</a> </h2> <div class="Documentation js-documentation"> <div class="Documentation-content js-docContent"> <section class="Documentation-index"> <h3 id="pkg-index" class="Documentation-indexHeader">Index <a href="#pkg-index" title="Go to Index" aria-label="Go to Index">露</a></h3> <ul class="Documentation-indexList"> <li class="Documentation-indexFunction"> <a href="#RegisterDriverAdapter">func RegisterDriverAdapter(a driver.Adapter, info driver.Info) error</a></li> <li class="Documentation-indexType"> <a href="#AudioSource">type AudioSource</a></li> <li class="Documentation-indexType"> <a href="#AudioTrack">type AudioTrack</a></li> <li><ul class="Documentation-indexTypeMethods"> <li> <a href="#AudioTrack.Bind">func (track *AudioTrack) Bind(ctx webrtc.TrackLocalContext) (webrtc.RTPCodecParameters, error)</a></li> <li> <a href="#AudioTrack.Kind">func (track AudioTrack) Kind() webrtc.RTPCodecType</a></li> <li> <a href="#AudioTrack.NewEncodedIOReader">func (track *AudioTrack) NewEncodedIOReader(codecName string) (io.ReadCloser, error)</a></li> <li> <a href="#AudioTrack.NewEncodedReader">func (track *AudioTrack) NewEncodedReader(codecName string) (EncodedReadCloser, error)</a></li> <li> <a href="#AudioTrack.NewRTPReader">func (track *AudioTrack) NewRTPReader(codecName string, ssrc uint32, mtu int) (RTPReadCloser, error)</a></li> <li> <a href="#AudioTrack.OnEnded">func (track AudioTrack) OnEnded(handler func(error))</a></li> <li> <a href="#AudioTrack.StreamID">func (track AudioTrack) StreamID() string</a></li> <li> <a href="#AudioTrack.Transform">func (track *AudioTrack) Transform(fns ...audio.TransformFunc)</a></li> <li> <a href="#AudioTrack.Unbind">func (track *AudioTrack) Unbind(ctx webrtc.TrackLocalContext) error</a></li> </ul></li> <li class="Documentation-indexType"> <a href="#CodecSelector">type CodecSelector</a></li> <li><ul class="Documentation-indexTypeFunctions"> <li> <a href="#NewCodecSelector">func NewCodecSelector(opts ...CodecSelectorOption) *CodecSelector</a></li> </ul></li> <li><ul class="Documentation-indexTypeMethods"> <li> <a href="#CodecSelector.Populate">func (selector *CodecSelector) Populate(setting *webrtc.MediaEngine)</a></li> </ul></li> <li class="Documentation-indexType"> <a href="#CodecSelectorOption">type CodecSelectorOption</a></li> <li><ul class="Documentation-indexTypeFunctions"> <li> <a href="#WithAudioEncoders">func WithAudioEncoders(encoders ...codec.AudioEncoderBuilder) CodecSelectorOption</a></li> <li> <a href="#WithVideoEncoders">func WithVideoEncoders(encoders ...codec.VideoEncoderBuilder) CodecSelectorOption</a></li> </ul></li> <li class="Documentation-indexType"> <a href="#EncodedBuffer">type EncodedBuffer</a></li> <li class="Documentation-indexType"> <a href="#EncodedReadCloser">type EncodedReadCloser</a></li> <li class="Documentation-indexType"> <a href="#MediaDeviceInfo">type MediaDeviceInfo</a></li> <li><ul class="Documentation-indexTypeFunctions"> <li> <a href="#EnumerateDevices">func EnumerateDevices() []MediaDeviceInfo</a></li> </ul></li> <li class="Documentation-indexType"> <a href="#MediaDeviceType">type MediaDeviceType</a></li> <li class="Documentation-indexType"> <a href="#MediaOption">type MediaOption</a></li> <li class="Documentation-indexType"> <a href="#MediaStream">type MediaStream</a></li> <li><ul class="Documentation-indexTypeFunctions"> <li> <a href="#GetDisplayMedia">func GetDisplayMedia(constraints MediaStreamConstraints) (MediaStream, error)</a></li> <li> <a href="#GetUserMedia">func GetUserMedia(constraints MediaStreamConstraints) (MediaStream, error)</a></li> <li> <a href="#NewMediaStream">func NewMediaStream(tracks ...Track) (MediaStream, error)</a></li> </ul></li> <li class="Documentation-indexType"> <a href="#MediaStreamConstraints">type MediaStreamConstraints</a></li> <li class="Documentation-indexType"> <a href="#MediaTrackConstraints">type MediaTrackConstraints</a></li> <li class="Documentation-indexType"> <a href="#RTPReadCloser">type RTPReadCloser</a></li> <li class="Documentation-indexType"> <a href="#Source">type Source</a></li> <li class="Documentation-indexType"> <a href="#Track">type Track</a></li> <li><ul class="Documentation-indexTypeFunctions"> <li> <a href="#NewAudioTrack">func NewAudioTrack(source AudioSource, selector *CodecSelector) Track</a></li> <li> <a href="#NewVideoTrack">func NewVideoTrack(source VideoSource, selector *CodecSelector) Track</a></li> </ul></li> <li class="Documentation-indexType"> <a href="#VideoSource">type VideoSource</a></li> <li class="Documentation-indexType"> <a href="#VideoTrack">type VideoTrack</a></li> <li><ul class="Documentation-indexTypeMethods"> <li> <a href="#VideoTrack.Bind">func (track *VideoTrack) Bind(ctx webrtc.TrackLocalContext) (webrtc.RTPCodecParameters, error)</a></li> <li> <a href="#VideoTrack.Kind">func (track VideoTrack) Kind() webrtc.RTPCodecType</a></li> <li> <a href="#VideoTrack.NewEncodedIOReader">func (track *VideoTrack) NewEncodedIOReader(codecName string) (io.ReadCloser, error)</a></li> <li> <a href="#VideoTrack.NewEncodedReader">func (track *VideoTrack) NewEncodedReader(codecName string) (EncodedReadCloser, error)</a></li> <li> <a href="#VideoTrack.NewRTPReader">func (track *VideoTrack) NewRTPReader(codecName string, ssrc uint32, mtu int) (RTPReadCloser, error)</a></li> <li> <a href="#VideoTrack.OnEnded">func (track VideoTrack) OnEnded(handler func(error))</a></li> <li> <a href="#VideoTrack.StreamID">func (track VideoTrack) StreamID() string</a></li> <li> <a href="#VideoTrack.Transform">func (track *VideoTrack) Transform(fns ...video.TransformFunc)</a></li> <li> <a href="#VideoTrack.Unbind">func (track *VideoTrack) Unbind(ctx webrtc.TrackLocalContext) error</a></li> </ul></li> </ul> </section><h3 tabindex="-1" id="pkg-constants" class="Documentation-constantsHeader">Constants <a href="#pkg-constants" title="Go to Constants" aria-label="Go to Constants">露</a></h3> <section class="Documentation-constants"><p class="Documentation-empty">This section is empty.</p></section> <h3 tabindex="-1" id="pkg-variables" class="Documentation-variablesHeader">Variables <a href="#pkg-variables" title="Go to Variables" aria-label="Go to Variables">露</a></h3> <section class="Documentation-variables"><p class="Documentation-empty">This section is empty.</p></section> <h3 tabindex="-1" id="pkg-functions" class="Documentation-functionsHeader">Functions <a href="#pkg-functions" title="Go to Functions" aria-label="Go to Functions">露</a></h3> <section class="Documentation-functions"><div class="Documentation-function"> <h4 tabindex="-1" id="RegisterDriverAdapter" data-kind="function" class="Documentation-functionHeader"> <span>func <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/driver.go#L8">RegisterDriverAdapter</a> <a class="Documentation-idLink" href="#RegisterDriverAdapter" title="Go to RegisterDriverAdapter" aria-label="Go to RegisterDriverAdapter">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func RegisterDriverAdapter(a <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/driver">driver</a>.<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/driver#Adapter">Adapter</a>, info <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/driver">driver</a>.<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/driver#Info">Info</a>) <a href="/builtin#error">error</a></pre> </div> <p>RegisterDriverAdapter allows user space level of driver registration </p> </div></section> <h3 tabindex="-1" id="pkg-types" class="Documentation-typesHeader">Types <a href="#pkg-types" title="Go to Types" aria-label="Go to Types">露</a></h3> <section class="Documentation-types"><div class="Documentation-type"> <h4 tabindex="-1" id="AudioSource" data-kind="type" class="Documentation-typeHeader"> <span>type <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L43">AudioSource</a> <a class="Documentation-idLink" href="#AudioSource" title="Go to AudioSource" aria-label="Go to AudioSource">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>type AudioSource interface { <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/io/audio">audio</a>.<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/io/audio#Reader">Reader</a> <a href="#Source">Source</a> }</pre> </div> <p>AudioSource is a specific type of media source that emits a series of audio chunks </p> </div><div class="Documentation-type"> <h4 tabindex="-1" id="AudioTrack" data-kind="type" class="Documentation-typeHeader"> <span>type <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L363">AudioTrack</a> <a class="Documentation-idLink" href="#AudioTrack" title="Go to AudioTrack" aria-label="Go to AudioTrack">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>type AudioTrack struct { <span id="AudioTrack.Broadcaster" data-kind="field"> *<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/io/audio">audio</a>.<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/io/audio#Broadcaster">Broadcaster</a> </span> <span class="comment">// contains filtered or unexported fields</span> }</pre> </div> <p>AudioTrack is a specific track type that contains audio source which allows multiple readers to access, and manipulate. </p> <div class="Documentation-typeMethod"> <h4 tabindex="-1" id="AudioTrack.Bind" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (*AudioTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L408">Bind</a> <a class="Documentation-idLink" href="#AudioTrack.Bind" title="Go to AudioTrack.Bind" aria-label="Go to AudioTrack.Bind">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track *<a href="#AudioTrack">AudioTrack</a>) Bind(ctx webrtc.TrackLocalContext) (webrtc.RTPCodecParameters, <a href="/builtin#error">error</a>)</pre> </div> </div><div class="Documentation-typeMethod"> <h4 tabindex="-1" id="AudioTrack.Kind" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (AudioTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L95">Kind</a> <a class="Documentation-idLink" href="#AudioTrack.Kind" title="Go to AudioTrack.Kind" aria-label="Go to AudioTrack.Kind">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track AudioTrack) Kind() webrtc.RTPCodecType</pre> </div> <p>Kind returns track&#39;s kind </p> </div><div class="Documentation-typeMethod"> <h4 tabindex="-1" id="AudioTrack.NewEncodedIOReader" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (*AudioTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L448">NewEncodedIOReader</a> <a class="Documentation-idLink" href="#AudioTrack.NewEncodedIOReader" title="Go to AudioTrack.NewEncodedIOReader" aria-label="Go to AudioTrack.NewEncodedIOReader">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track *<a href="#AudioTrack">AudioTrack</a>) NewEncodedIOReader(codecName <a href="/builtin#string">string</a>) (<a href="/io">io</a>.<a href="/io#ReadCloser">ReadCloser</a>, <a href="/builtin#error">error</a>)</pre> </div> </div><div class="Documentation-typeMethod"> <h4 tabindex="-1" id="AudioTrack.NewEncodedReader" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (*AudioTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L443">NewEncodedReader</a> <a class="Documentation-idLink" href="#AudioTrack.NewEncodedReader" title="Go to AudioTrack.NewEncodedReader" aria-label="Go to AudioTrack.NewEncodedReader">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track *<a href="#AudioTrack">AudioTrack</a>) NewEncodedReader(codecName <a href="/builtin#string">string</a>) (<a href="#EncodedReadCloser">EncodedReadCloser</a>, <a href="/builtin#error">error</a>)</pre> </div> </div><div class="Documentation-typeMethod"> <h4 tabindex="-1" id="AudioTrack.NewRTPReader" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (*AudioTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L456">NewRTPReader</a> <a class="Documentation-idLink" href="#AudioTrack.NewRTPReader" title="Go to AudioTrack.NewRTPReader" aria-label="Go to AudioTrack.NewRTPReader">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track *<a href="#AudioTrack">AudioTrack</a>) NewRTPReader(codecName <a href="/builtin#string">string</a>, ssrc <a href="/builtin#uint32">uint32</a>, mtu <a href="/builtin#int">int</a>) (<a href="#RTPReadCloser">RTPReadCloser</a>, <a href="/builtin#error">error</a>)</pre> </div> </div><div class="Documentation-typeMethod"> <h4 tabindex="-1" id="AudioTrack.OnEnded" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (AudioTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L118">OnEnded</a> <a class="Documentation-idLink" href="#AudioTrack.OnEnded" title="Go to AudioTrack.OnEnded" aria-label="Go to AudioTrack.OnEnded">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track AudioTrack) OnEnded(handler func(<a href="/builtin#error">error</a>))</pre> </div> <p>OnEnded sets an error handler. When a track has been created and started, if an error occurs, handler will get called with the error given to the parameter. </p> </div><div class="Documentation-typeMethod"> <h4 tabindex="-1" id="AudioTrack.StreamID" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (AudioTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L106">StreamID</a> <a class="Documentation-idLink" href="#AudioTrack.StreamID" title="Go to AudioTrack.StreamID" aria-label="Go to AudioTrack.StreamID">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track AudioTrack) StreamID() <a href="/builtin#string">string</a></pre> </div> </div><div class="Documentation-typeMethod"> <h4 tabindex="-1" id="AudioTrack.Transform" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (*AudioTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L403">Transform</a> <a class="Documentation-idLink" href="#AudioTrack.Transform" title="Go to AudioTrack.Transform" aria-label="Go to AudioTrack.Transform">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track *<a href="#AudioTrack">AudioTrack</a>) Transform(fns ...<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/io/audio">audio</a>.<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/io/audio#TransformFunc">TransformFunc</a>)</pre> </div> <p>Transform transforms the underlying source by applying the given fns in serial order </p> </div><div class="Documentation-typeMethod"> <h4 tabindex="-1" id="AudioTrack.Unbind" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (*AudioTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L412">Unbind</a> <a class="Documentation-idLink" href="#AudioTrack.Unbind" title="Go to AudioTrack.Unbind" aria-label="Go to AudioTrack.Unbind">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track *<a href="#AudioTrack">AudioTrack</a>) Unbind(ctx webrtc.TrackLocalContext) <a href="/builtin#error">error</a></pre> </div> </div> </div><div class="Documentation-type"> <h4 tabindex="-1" id="CodecSelector" data-kind="type" class="Documentation-typeHeader"> <span>type <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/codec.go#L17">CodecSelector</a> <a class="Documentation-idLink" href="#CodecSelector" title="Go to CodecSelector" aria-label="Go to CodecSelector">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>type CodecSelector struct { <span class="comment">// contains filtered or unexported fields</span> }</pre> </div> <p>CodecSelector is a container of video and audio encoder builders, which later will be used for codec matching. </p> <div class="Documentation-typeFunc"> <h4 tabindex="-1" id="NewCodecSelector" data-kind="function" class="Documentation-typeFuncHeader"> <span>func <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/codec.go#L40">NewCodecSelector</a> <a class="Documentation-idLink" href="#NewCodecSelector" title="Go to NewCodecSelector" aria-label="Go to NewCodecSelector">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func NewCodecSelector(opts ...<a href="#CodecSelectorOption">CodecSelectorOption</a>) *<a href="#CodecSelector">CodecSelector</a></pre> </div> <p>NewCodecSelector constructs CodecSelector with given variadic options </p> </div><div class="Documentation-typeMethod"> <h4 tabindex="-1" id="CodecSelector.Populate" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (*CodecSelector) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/codec.go#L51">Populate</a> <a class="Documentation-idLink" href="#CodecSelector.Populate" title="Go to CodecSelector.Populate" aria-label="Go to CodecSelector.Populate">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (selector *<a href="#CodecSelector">CodecSelector</a>) Populate(setting *webrtc.MediaEngine)</pre> </div> <p>Populate lets the webrtc engine be aware of supported codecs that are contained in CodecSelector </p> </div> </div><div class="Documentation-type"> <h4 tabindex="-1" id="CodecSelectorOption" data-kind="type" class="Documentation-typeHeader"> <span>type <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/codec.go#L23">CodecSelectorOption</a> <a class="Documentation-idLink" href="#CodecSelectorOption" title="Go to CodecSelectorOption" aria-label="Go to CodecSelectorOption">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>type CodecSelectorOption func(*<a href="#CodecSelector">CodecSelector</a>)</pre> </div> <p>CodecSelectorOption is a type for specifying CodecSelector options </p> <div class="Documentation-typeFunc"> <h4 tabindex="-1" id="WithAudioEncoders" data-kind="function" class="Documentation-typeFuncHeader"> <span>func <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/codec.go#L33">WithAudioEncoders</a> <a class="Documentation-idLink" href="#WithAudioEncoders" title="Go to WithAudioEncoders" aria-label="Go to WithAudioEncoders">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func WithAudioEncoders(encoders ...<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/codec">codec</a>.<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/codec#AudioEncoderBuilder">AudioEncoderBuilder</a>) <a href="#CodecSelectorOption">CodecSelectorOption</a></pre> </div> <p>WithVideoEncoders replace current audio codecs with listed encoders </p> </div><div class="Documentation-typeFunc"> <h4 tabindex="-1" id="WithVideoEncoders" data-kind="function" class="Documentation-typeFuncHeader"> <span>func <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/codec.go#L26">WithVideoEncoders</a> <a class="Documentation-idLink" href="#WithVideoEncoders" title="Go to WithVideoEncoders" aria-label="Go to WithVideoEncoders">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func WithVideoEncoders(encoders ...<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/codec">codec</a>.<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/codec#VideoEncoderBuilder">VideoEncoderBuilder</a>) <a href="#CodecSelectorOption">CodecSelectorOption</a></pre> </div> <p>WithVideoEncoders replace current video codecs with listed encoders </p> </div> </div><div class="Documentation-type"> <h4 tabindex="-1" id="EncodedBuffer" data-kind="type" class="Documentation-typeHeader"> <span>type <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/ioreader.go#L3">EncodedBuffer</a> <a class="Documentation-idLink" href="#EncodedBuffer" title="Go to EncodedBuffer" aria-label="Go to EncodedBuffer">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>type EncodedBuffer struct { <span id="EncodedBuffer.Data" data-kind="field"> Data []<a href="/builtin#byte">byte</a> </span><span id="EncodedBuffer.Samples" data-kind="field"> Samples <a href="/builtin#uint32">uint32</a> </span>}</pre> </div> </div><div class="Documentation-type"> <h4 tabindex="-1" id="EncodedReadCloser" data-kind="type" class="Documentation-typeHeader"> <span>type <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/ioreader.go#L8">EncodedReadCloser</a> <a class="Documentation-idLink" href="#EncodedReadCloser" title="Go to EncodedReadCloser" aria-label="Go to EncodedReadCloser">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>type EncodedReadCloser interface { <span id="EncodedReadCloser.Read" data-kind="method"> Read() (<a href="#EncodedBuffer">EncodedBuffer</a>, func(), <a href="/builtin#error">error</a>) </span><span id="EncodedReadCloser.Close" data-kind="method"> Close() <a href="/builtin#error">error</a> </span>}</pre> </div> </div><div class="Documentation-type"> <h4 tabindex="-1" id="MediaDeviceInfo" data-kind="type" class="Documentation-typeHeader"> <span>type <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/mediadeviceinfo.go#L16">MediaDeviceInfo</a> <a class="Documentation-idLink" href="#MediaDeviceInfo" title="Go to MediaDeviceInfo" aria-label="Go to MediaDeviceInfo">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>type MediaDeviceInfo struct { <span id="MediaDeviceInfo.DeviceID" data-kind="field"> DeviceID <a href="/builtin#string">string</a> </span><span id="MediaDeviceInfo.Kind" data-kind="field"> Kind <a href="#MediaDeviceType">MediaDeviceType</a> </span><span id="MediaDeviceInfo.Label" data-kind="field"> Label <a href="/builtin#string">string</a> </span><span id="MediaDeviceInfo.DeviceType" data-kind="field"> DeviceType <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/driver">driver</a>.<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/driver#DeviceType">DeviceType</a> </span>}</pre> </div> <p>MediaDeviceInfo represents <a href="https://w3c.github.io/mediacapture-main/#dom-mediadeviceinfo">https://w3c.github.io/mediacapture-main/#dom-mediadeviceinfo</a> </p> <div class="Documentation-typeFunc"> <h4 tabindex="-1" id="EnumerateDevices" data-kind="function" class="Documentation-typeFuncHeader"> <span>func <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/mediadevices.go#L199">EnumerateDevices</a> <a class="Documentation-idLink" href="#EnumerateDevices" title="Go to EnumerateDevices" aria-label="Go to EnumerateDevices">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func EnumerateDevices() []<a href="#MediaDeviceInfo">MediaDeviceInfo</a></pre> </div> </div> </div><div class="Documentation-type"> <h4 tabindex="-1" id="MediaDeviceType" data-kind="type" class="Documentation-typeHeader"> <span>type <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/mediadeviceinfo.go#L6">MediaDeviceType</a> <a class="Documentation-idLink" href="#MediaDeviceType" title="Go to MediaDeviceType" aria-label="Go to MediaDeviceType">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>type MediaDeviceType <a href="/builtin#int">int</a></pre> </div> <p>MediaDeviceType enumerates type of media device. </p> <div class="Documentation-typeConstant"> <div class="Documentation-declaration"> <pre>const ( <span id="VideoInput" data-kind="constant"> VideoInput <a href="#MediaDeviceType">MediaDeviceType</a> = <a href="/builtin#iota">iota</a> + 1 </span><span id="AudioInput" data-kind="constant"> AudioInput </span><span id="AudioOutput" data-kind="constant"> AudioOutput </span>)</pre> </div> <p>MediaDeviceType definitions. </p> </div> </div><div class="Documentation-type"> <h4 tabindex="-1" id="MediaOption" data-kind="type" class="Documentation-typeHeader"> <span>type <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/mediastreamconstraints.go#L19">MediaOption</a> <a class="Documentation-idLink" href="#MediaOption" title="Go to MediaOption" aria-label="Go to MediaOption">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>type MediaOption func(*<a href="#MediaTrackConstraints">MediaTrackConstraints</a>)</pre> </div> </div><div class="Documentation-type"> <h4 tabindex="-1" id="MediaStream" data-kind="type" class="Documentation-typeHeader"> <span>type <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/mediastream.go#L10">MediaStream</a> <a class="Documentation-idLink" href="#MediaStream" title="Go to MediaStream" aria-label="Go to MediaStream">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>type MediaStream interface { <span id="MediaStream.GetAudioTracks" data-kind="method"> <span class="comment">// GetAudioTracks implements <a href="https://w3c.github.io/mediacapture-main/#dom-mediastream-getaudiotracks">https://w3c.github.io/mediacapture-main/#dom-mediastream-getaudiotracks</a></span> </span> GetAudioTracks() []<a href="#Track">Track</a> <span id="MediaStream.GetVideoTracks" data-kind="method"> <span class="comment">// GetVideoTracks implements <a href="https://w3c.github.io/mediacapture-main/#dom-mediastream-getvideotracks">https://w3c.github.io/mediacapture-main/#dom-mediastream-getvideotracks</a></span> </span> GetVideoTracks() []<a href="#Track">Track</a> <span id="MediaStream.GetTracks" data-kind="method"> <span class="comment">// GetTracks implements <a href="https://w3c.github.io/mediacapture-main/#dom-mediastream-gettracks">https://w3c.github.io/mediacapture-main/#dom-mediastream-gettracks</a></span> </span> GetTracks() []<a href="#Track">Track</a> <span id="MediaStream.AddTrack" data-kind="method"> <span class="comment">// AddTrack implements <a href="https://w3c.github.io/mediacapture-main/#dom-mediastream-addtrack">https://w3c.github.io/mediacapture-main/#dom-mediastream-addtrack</a></span> </span> AddTrack(t <a href="#Track">Track</a>) <span id="MediaStream.RemoveTrack" data-kind="method"> <span class="comment">// RemoveTrack implements <a href="https://w3c.github.io/mediacapture-main/#dom-mediastream-removetrack">https://w3c.github.io/mediacapture-main/#dom-mediastream-removetrack</a></span> </span> RemoveTrack(t <a href="#Track">Track</a>) }</pre> </div> <p>MediaStream is an interface that represents a collection of existing tracks. </p> <div class="Documentation-typeFunc"> <h4 tabindex="-1" id="GetDisplayMedia" data-kind="function" class="Documentation-typeFuncHeader"> <span>func <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/mediadevices.go#L17">GetDisplayMedia</a> <a class="Documentation-idLink" href="#GetDisplayMedia" title="Go to GetDisplayMedia" aria-label="Go to GetDisplayMedia">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func GetDisplayMedia(constraints <a href="#MediaStreamConstraints">MediaStreamConstraints</a>) (<a href="#MediaStream">MediaStream</a>, <a href="/builtin#error">error</a>)</pre> </div> <p>GetDisplayMedia prompts the user to select and grant permission to capture the contents of a display or portion thereof (such as a window) as a MediaStream. Reference: <a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia">https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia</a> </p> </div><div class="Documentation-typeFunc"> <h4 tabindex="-1" id="GetUserMedia" data-kind="function" class="Documentation-typeFuncHeader"> <span>func <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/mediadevices.go#L50">GetUserMedia</a> <a class="Documentation-idLink" href="#GetUserMedia" title="Go to GetUserMedia" aria-label="Go to GetUserMedia">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func GetUserMedia(constraints <a href="#MediaStreamConstraints">MediaStreamConstraints</a>) (<a href="#MediaStream">MediaStream</a>, <a href="/builtin#error">error</a>)</pre> </div> <p>GetUserMedia prompts the user for permission to use a media input which produces a MediaStream with tracks containing the requested types of media. Reference: <a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia">https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia</a> </p> </div><div class="Documentation-typeFunc"> <h4 tabindex="-1" id="NewMediaStream" data-kind="function" class="Documentation-typeFuncHeader"> <span>func <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/mediastream.go#L32">NewMediaStream</a> <a class="Documentation-idLink" href="#NewMediaStream" title="Go to NewMediaStream" aria-label="Go to NewMediaStream">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func NewMediaStream(tracks ...<a href="#Track">Track</a>) (<a href="#MediaStream">MediaStream</a>, <a href="/builtin#error">error</a>)</pre> </div> <p>NewMediaStream creates a MediaStream interface that&#39;s defined in <a href="https://w3c.github.io/mediacapture-main/#dom-mediastream">https://w3c.github.io/mediacapture-main/#dom-mediastream</a> </p> </div> </div><div class="Documentation-type"> <h4 tabindex="-1" id="MediaStreamConstraints" data-kind="type" class="Documentation-typeHeader"> <span>type <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/mediastreamconstraints.go#L7">MediaStreamConstraints</a> <a class="Documentation-idLink" href="#MediaStreamConstraints" title="Go to MediaStreamConstraints" aria-label="Go to MediaStreamConstraints">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>type MediaStreamConstraints struct { <span id="MediaStreamConstraints.Audio" data-kind="field"> Audio <a href="#MediaOption">MediaOption</a> </span><span id="MediaStreamConstraints.Video" data-kind="field"> Video <a href="#MediaOption">MediaOption</a> </span><span id="MediaStreamConstraints.Codec" data-kind="field"> Codec *<a href="#CodecSelector">CodecSelector</a> </span>}</pre> </div> </div><div class="Documentation-type"> <h4 tabindex="-1" id="MediaTrackConstraints" data-kind="type" class="Documentation-typeHeader"> <span>type <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/mediastreamconstraints.go#L14">MediaTrackConstraints</a> <a class="Documentation-idLink" href="#MediaTrackConstraints" title="Go to MediaTrackConstraints" aria-label="Go to MediaTrackConstraints">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>type MediaTrackConstraints struct { <span id="MediaTrackConstraints.MediaConstraints" data-kind="field"> <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/prop">prop</a>.<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/prop#MediaConstraints">MediaConstraints</a> </span> <span class="comment">// contains filtered or unexported fields</span> }</pre> </div> <p>MediaTrackConstraints represents <a href="https://w3c.github.io/mediacapture-main/#dom-mediatrackconstraints">https://w3c.github.io/mediacapture-main/#dom-mediatrackconstraints</a> </p> </div><div class="Documentation-type"> <h4 tabindex="-1" id="RTPReadCloser" data-kind="type" class="Documentation-typeHeader"> <span>type <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/rtpreader.go#L5">RTPReadCloser</a> <a class="Documentation-idLink" href="#RTPReadCloser" title="Go to RTPReadCloser" aria-label="Go to RTPReadCloser">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>type RTPReadCloser interface { <span id="RTPReadCloser.Read" data-kind="method"> Read() (pkts []*<a href="/github.com/pion/rtp">rtp</a>.<a href="/github.com/pion/rtp#Packet">Packet</a>, release func(), err <a href="/builtin#error">error</a>) </span><span id="RTPReadCloser.Close" data-kind="method"> Close() <a href="/builtin#error">error</a> </span>}</pre> </div> </div><div class="Documentation-type"> <h4 tabindex="-1" id="Source" data-kind="type" class="Documentation-typeHeader"> <span>type <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L31">Source</a> <a class="Documentation-idLink" href="#Source" title="Go to Source" aria-label="Go to Source">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>type Source interface { <span id="Source.ID" data-kind="method"> ID() <a href="/builtin#string">string</a> </span><span id="Source.Close" data-kind="method"> Close() <a href="/builtin#error">error</a> </span>}</pre> </div> <p>Source is a generic representation of a media source </p> </div><div class="Documentation-type"> <h4 tabindex="-1" id="Track" data-kind="type" class="Documentation-typeHeader"> <span>type <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L50">Track</a> <a class="Documentation-idLink" href="#Track" title="Go to Track" aria-label="Go to Track">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>type Track interface { <a href="#Source">Source</a> <span class="comment">// OnEnded registers a handler to receive an error from the media stream track.</span> <span class="comment">// If the error is already occured before registering, the handler will be</span> <span class="comment">// immediately called.</span> <span id="Track.OnEnded" data-kind="method"> OnEnded(func(<a href="/builtin#error">error</a>)) </span><span id="Track.Kind" data-kind="method"> Kind() webrtc.RTPCodecType </span><span id="Track.StreamID" data-kind="method"> <span class="comment">// StreamID is the group this track belongs too. This must be unique</span> </span> StreamID() <a href="/builtin#string">string</a> <span id="Track.Bind" data-kind="method"> <span class="comment">// Bind binds the current track source to the given peer connection. In Pion/webrtc v3, the bind</span> </span> <span class="comment">// call will happen automatically after the SDP negotiation. Users won&#39;t need to call this manually.</span> Bind(webrtc.TrackLocalContext) (webrtc.RTPCodecParameters, <a href="/builtin#error">error</a>) <span id="Track.Unbind" data-kind="method"> <span class="comment">// Unbind is the clean up operation that should be called after Bind. Similar to Bind, unbind will</span> </span> <span class="comment">// be called automatically in Pion/webrtc v3.</span> Unbind(webrtc.TrackLocalContext) <a href="/builtin#error">error</a> <span id="Track.NewRTPReader" data-kind="method"> <span class="comment">// NewRTPReader creates a new reader from the source. The reader will encode the source, and packetize</span> </span> <span class="comment">// the encoded data in RTP format with given mtu size.</span> NewRTPReader(codecName <a href="/builtin#string">string</a>, ssrc <a href="/builtin#uint32">uint32</a>, mtu <a href="/builtin#int">int</a>) (<a href="#RTPReadCloser">RTPReadCloser</a>, <a href="/builtin#error">error</a>) <span id="Track.NewEncodedReader" data-kind="method"> <span class="comment">// NewEncodedReader creates a EncodedReadCloser that reads the encoded data in codecName format</span> </span> NewEncodedReader(codecName <a href="/builtin#string">string</a>) (<a href="#EncodedReadCloser">EncodedReadCloser</a>, <a href="/builtin#error">error</a>) <span id="Track.NewEncodedIOReader" data-kind="method"> <span class="comment">// NewEncodedReader creates a new Go standard io.ReadCloser that reads the encoded data in codecName format</span> </span> NewEncodedIOReader(codecName <a href="/builtin#string">string</a>) (<a href="/io">io</a>.<a href="/io#ReadCloser">ReadCloser</a>, <a href="/builtin#error">error</a>) }</pre> </div> <p>Track is an interface that represent MediaStreamTrack Reference: <a href="https://w3c.github.io/mediacapture-main/#mediastreamtrack">https://w3c.github.io/mediacapture-main/#mediastreamtrack</a> </p> <div class="Documentation-typeFunc"> <h4 tabindex="-1" id="NewAudioTrack" data-kind="function" class="Documentation-typeFuncHeader"> <span>func <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L369">NewAudioTrack</a> <a class="Documentation-idLink" href="#NewAudioTrack" title="Go to NewAudioTrack" aria-label="Go to NewAudioTrack">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func NewAudioTrack(source <a href="#AudioSource">AudioSource</a>, selector *<a href="#CodecSelector">CodecSelector</a>) <a href="#Track">Track</a></pre> </div> <p>NewAudioTrack constructs a new VideoTrack </p> </div><div class="Documentation-typeFunc"> <h4 tabindex="-1" id="NewVideoTrack" data-kind="function" class="Documentation-typeFuncHeader"> <span>func <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L249">NewVideoTrack</a> <a class="Documentation-idLink" href="#NewVideoTrack" title="Go to NewVideoTrack" aria-label="Go to NewVideoTrack">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func NewVideoTrack(source <a href="#VideoSource">VideoSource</a>, selector *<a href="#CodecSelector">CodecSelector</a>) <a href="#Track">Track</a></pre> </div> <p>NewVideoTrack constructs a new VideoTrack </p> </div> </div><div class="Documentation-type"> <h4 tabindex="-1" id="VideoSource" data-kind="type" class="Documentation-typeHeader"> <span>type <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L37">VideoSource</a> <a class="Documentation-idLink" href="#VideoSource" title="Go to VideoSource" aria-label="Go to VideoSource">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>type VideoSource interface { <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/io/video">video</a>.<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/io/video#Reader">Reader</a> <a href="#Source">Source</a> }</pre> </div> <p>VideoSource is a specific type of media source that emits a series of video frames </p> </div><div class="Documentation-type"> <h4 tabindex="-1" id="VideoTrack" data-kind="type" class="Documentation-typeHeader"> <span>type <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L243">VideoTrack</a> <a class="Documentation-idLink" href="#VideoTrack" title="Go to VideoTrack" aria-label="Go to VideoTrack">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>type VideoTrack struct { <span id="VideoTrack.Broadcaster" data-kind="field"> *<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/io/video">video</a>.<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/io/video#Broadcaster">Broadcaster</a> </span> <span class="comment">// contains filtered or unexported fields</span> }</pre> </div> <p>VideoTrack is a specific track type that contains video source which allows multiple readers to access, and manipulate. </p> <div class="Documentation-typeMethod"> <h4 tabindex="-1" id="VideoTrack.Bind" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (*VideoTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L288">Bind</a> <a class="Documentation-idLink" href="#VideoTrack.Bind" title="Go to VideoTrack.Bind" aria-label="Go to VideoTrack.Bind">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track *<a href="#VideoTrack">VideoTrack</a>) Bind(ctx webrtc.TrackLocalContext) (webrtc.RTPCodecParameters, <a href="/builtin#error">error</a>)</pre> </div> </div><div class="Documentation-typeMethod"> <h4 tabindex="-1" id="VideoTrack.Kind" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (VideoTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L95">Kind</a> <a class="Documentation-idLink" href="#VideoTrack.Kind" title="Go to VideoTrack.Kind" aria-label="Go to VideoTrack.Kind">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track VideoTrack) Kind() webrtc.RTPCodecType</pre> </div> <p>Kind returns track&#39;s kind </p> </div><div class="Documentation-typeMethod"> <h4 tabindex="-1" id="VideoTrack.NewEncodedIOReader" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (*VideoTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L328">NewEncodedIOReader</a> <a class="Documentation-idLink" href="#VideoTrack.NewEncodedIOReader" title="Go to VideoTrack.NewEncodedIOReader" aria-label="Go to VideoTrack.NewEncodedIOReader">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track *<a href="#VideoTrack">VideoTrack</a>) NewEncodedIOReader(codecName <a href="/builtin#string">string</a>) (<a href="/io">io</a>.<a href="/io#ReadCloser">ReadCloser</a>, <a href="/builtin#error">error</a>)</pre> </div> </div><div class="Documentation-typeMethod"> <h4 tabindex="-1" id="VideoTrack.NewEncodedReader" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (*VideoTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L323">NewEncodedReader</a> <a class="Documentation-idLink" href="#VideoTrack.NewEncodedReader" title="Go to VideoTrack.NewEncodedReader" aria-label="Go to VideoTrack.NewEncodedReader">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track *<a href="#VideoTrack">VideoTrack</a>) NewEncodedReader(codecName <a href="/builtin#string">string</a>) (<a href="#EncodedReadCloser">EncodedReadCloser</a>, <a href="/builtin#error">error</a>)</pre> </div> </div><div class="Documentation-typeMethod"> <h4 tabindex="-1" id="VideoTrack.NewRTPReader" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (*VideoTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L336">NewRTPReader</a> <a class="Documentation-idLink" href="#VideoTrack.NewRTPReader" title="Go to VideoTrack.NewRTPReader" aria-label="Go to VideoTrack.NewRTPReader">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track *<a href="#VideoTrack">VideoTrack</a>) NewRTPReader(codecName <a href="/builtin#string">string</a>, ssrc <a href="/builtin#uint32">uint32</a>, mtu <a href="/builtin#int">int</a>) (<a href="#RTPReadCloser">RTPReadCloser</a>, <a href="/builtin#error">error</a>)</pre> </div> </div><div class="Documentation-typeMethod"> <h4 tabindex="-1" id="VideoTrack.OnEnded" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (VideoTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L118">OnEnded</a> <a class="Documentation-idLink" href="#VideoTrack.OnEnded" title="Go to VideoTrack.OnEnded" aria-label="Go to VideoTrack.OnEnded">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track VideoTrack) OnEnded(handler func(<a href="/builtin#error">error</a>))</pre> </div> <p>OnEnded sets an error handler. When a track has been created and started, if an error occurs, handler will get called with the error given to the parameter. </p> </div><div class="Documentation-typeMethod"> <h4 tabindex="-1" id="VideoTrack.StreamID" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (VideoTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L106">StreamID</a> <a class="Documentation-idLink" href="#VideoTrack.StreamID" title="Go to VideoTrack.StreamID" aria-label="Go to VideoTrack.StreamID">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track VideoTrack) StreamID() <a href="/builtin#string">string</a></pre> </div> </div><div class="Documentation-typeMethod"> <h4 tabindex="-1" id="VideoTrack.Transform" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (*VideoTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L283">Transform</a> <a class="Documentation-idLink" href="#VideoTrack.Transform" title="Go to VideoTrack.Transform" aria-label="Go to VideoTrack.Transform">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track *<a href="#VideoTrack">VideoTrack</a>) Transform(fns ...<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/io/video">video</a>.<a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/io/video#TransformFunc">TransformFunc</a>)</pre> </div> <p>Transform transforms the underlying source by applying the given fns in serial order </p> </div><div class="Documentation-typeMethod"> <h4 tabindex="-1" id="VideoTrack.Unbind" data-kind="method" class="Documentation-typeMethodHeader"> <span>func (*VideoTrack) <a class="Documentation-source" href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go#L292">Unbind</a> <a class="Documentation-idLink" href="#VideoTrack.Unbind" title="Go to VideoTrack.Unbind" aria-label="Go to VideoTrack.Unbind">露</a></span> <span class="Documentation-sinceVersion"> </span> </h4> <div class="Documentation-declaration"> <pre>func (track *<a href="#VideoTrack">VideoTrack</a>) Unbind(ctx webrtc.TrackLocalContext) <a href="/builtin#error">error</a></pre> </div> </div> </div></section></div> </div> </div> <div class="UnitFiles js-unitFiles"> <h2 class="UnitFiles-title" id="section-sourcefiles"> <img class="go-Icon" height="24" width="24" src="/static/shared/icon/insert_drive_file_gm_grey_24dp.svg" alt=""> Source Files <a class="UnitFiles-idLink" href="#section-sourcefiles" title="Go to Source Files" aria-label="Go to Source Files">露</a> </h2> <div class="UnitFiles-titleLink"> <a href="https://gitee.com/zengyongheng/gocvwinmedia/tree/0bf383f7f91e" target="_blank" rel="noopener">View all Source files</a> </div> <div> <ul class="UnitFiles-fileList"><li> <a href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/codec.go" target="_blank" rel="noopener" title="codec.go">codec.go</a> </li><li> <a href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/driver.go" target="_blank" rel="noopener" title="driver.go">driver.go</a> </li><li> <a href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/ioreader.go" target="_blank" rel="noopener" title="ioreader.go">ioreader.go</a> </li><li> <a href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/logging.go" target="_blank" rel="noopener" title="logging.go">logging.go</a> </li><li> <a href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/mediadeviceinfo.go" target="_blank" rel="noopener" title="mediadeviceinfo.go">mediadeviceinfo.go</a> </li><li> <a href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/mediadevices.go" target="_blank" rel="noopener" title="mediadevices.go">mediadevices.go</a> </li><li> <a href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/mediastream.go" target="_blank" rel="noopener" title="mediastream.go">mediastream.go</a> </li><li> <a href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/mediastreamconstraints.go" target="_blank" rel="noopener" title="mediastreamconstraints.go">mediastreamconstraints.go</a> </li><li> <a href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/meta.go" target="_blank" rel="noopener" title="meta.go">meta.go</a> </li><li> <a href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/rtpreader.go" target="_blank" rel="noopener" title="rtpreader.go">rtpreader.go</a> </li><li> <a href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/sampler.go" target="_blank" rel="noopener" title="sampler.go">sampler.go</a> </li><li> <a href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/source.go" target="_blank" rel="noopener" title="source.go">source.go</a> </li><li> <a href="https://gitee.com/zengyongheng/gocvwinmedia/blob/0bf383f7f91e/track.go" target="_blank" rel="noopener" title="track.go">track.go</a> </li></ul> </div> </div> <div class="UnitDirectories js-unitDirectories"> <h2 class="UnitDirectories-title" id="section-directories"> <img class="go-Icon" height="24" width="24" src="/static/shared/icon/folder_gm_grey_24dp.svg" alt=""> Directories <a class="UnitDirectories-idLink" href="#section-directories" title="Go to Directories" aria-label="Go to Directories">露</a> </h2> <div class="UnitDirectories-toggles"> <div class="UnitDirectories-toggleButtons"> <button class="js-showInternalDirectories" data-test-id="internal-directories-toggle" data-gtmc="directories button" aria-label="Show Internal Directories"> Show internal </button> <button class="js-expandAllDirectories" data-test-id="directories-toggle" data-gtmc="directories button" aria-label="Expand All Directories"> Expand all </button> </div> </div> <table class="UnitDirectories-table UnitDirectories-table--tree js-expandableTable" data-test-id="UnitDirectories-table"> <tr class="UnitDirectories-tableHeader UnitDirectories-tableHeader--tree"> <th>Path</th> <th class="UnitDirectories-desktopSynopsis">Synopsis</th> </tr> <tr data-aria-controls="internal-logging " class="UnitDirectories-internal"> <td data-id="internal" data-aria-owns="internal-logging "> <div class="UnitDirectories-pathCell"> <div><button type="button" class="go-Button go-Button--inline UnitDirectories-toggleButton" aria-expanded="false" aria-label="1 more from" data-aria-controls="internal-logging " data-aria-labelledby="internal-button internal" data-id="internal-button"> <img class="go-Icon" height="24" width="24" src="/static/shared/icon/arrow_right_gm_grey_24dp.svg" alt=""> </button><span>internal</span> </td> <td class="UnitDirectories-desktopSynopsis"></td></tr><tr data-id="internal-logging" class="UnitDirectories-internal"> <td> <div class="UnitDirectories-subdirectory"> <span> <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/internal/logging">logging</a> </span> <div class="UnitDirectories-mobileSynopsis"></div> </div> </td> <td class="UnitDirectories-desktopSynopsis"></td></tr> <tr data-aria-controls="pkg-avfoundation pkg-codec pkg-codec/vpx pkg-driver pkg-driver/camera pkg-frame pkg-io pkg-io/audio pkg-io/video pkg-prop pkg-wave pkg-wave/mixer " class=""> <td data-id="pkg" data-aria-owns="pkg-avfoundation pkg-codec pkg-codec/vpx pkg-driver pkg-driver/camera pkg-frame pkg-io pkg-io/audio pkg-io/video pkg-prop pkg-wave pkg-wave/mixer "> <div class="UnitDirectories-pathCell"> <div><button type="button" class="go-Button go-Button--inline UnitDirectories-toggleButton" aria-expanded="false" aria-label="12 more from" data-aria-controls="pkg-avfoundation pkg-codec pkg-codec/vpx pkg-driver pkg-driver/camera pkg-frame pkg-io pkg-io/audio pkg-io/video pkg-prop pkg-wave pkg-wave/mixer " data-aria-labelledby="pkg-button pkg" data-id="pkg-button"> <img class="go-Icon" height="24" width="24" src="/static/shared/icon/arrow_right_gm_grey_24dp.svg" alt=""> </button><span>pkg</span> </td> <td class="UnitDirectories-desktopSynopsis"></td></tr><tr data-id="pkg-avfoundation" class=""> <td> <div class="UnitDirectories-subdirectory"> <span> <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/avfoundation">avfoundation</a> </span> <div class="UnitDirectories-mobileSynopsis">Package avfoundation provides AVFoundation binding for Go</div> </div> </td> <td class="UnitDirectories-desktopSynopsis">Package avfoundation provides AVFoundation binding for Go</td><tr data-id="pkg-codec" class=""> <td> <div class="UnitDirectories-subdirectory"> <span> <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/codec">codec</a> </span> <div class="UnitDirectories-mobileSynopsis"></div> </div> </td> <td class="UnitDirectories-desktopSynopsis"></td><tr data-id="pkg-codec/vpx" class=""> <td> <div class="UnitDirectories-subdirectory"> <span> <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/codec/vpx">codec/vpx</a> </span> <div class="UnitDirectories-mobileSynopsis">Package vpx implements VP8 and VP9 encoder.</div> </div> </td> <td class="UnitDirectories-desktopSynopsis">Package vpx implements VP8 and VP9 encoder.</td><tr data-id="pkg-driver" class=""> <td> <div class="UnitDirectories-subdirectory"> <span> <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/driver">driver</a> </span> <div class="UnitDirectories-mobileSynopsis"></div> </div> </td> <td class="UnitDirectories-desktopSynopsis"></td><tr data-id="pkg-driver/camera" class=""> <td> <div class="UnitDirectories-subdirectory"> <span> <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/driver/camera">driver/camera</a> </span> <div class="UnitDirectories-mobileSynopsis">Package camera provides a video camera driver.</div> </div> </td> <td class="UnitDirectories-desktopSynopsis">Package camera provides a video camera driver.</td><tr data-id="pkg-frame" class=""> <td> <div class="UnitDirectories-subdirectory"> <span> <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/frame">frame</a> </span> <div class="UnitDirectories-mobileSynopsis"></div> </div> </td> <td class="UnitDirectories-desktopSynopsis"></td><tr data-id="pkg-io" class=""> <td> <div class="UnitDirectories-subdirectory"> <span> <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/io">io</a> </span> <div class="UnitDirectories-mobileSynopsis"></div> </div> </td> <td class="UnitDirectories-desktopSynopsis"></td><tr data-id="pkg-io/audio" class=""> <td> <div class="UnitDirectories-subdirectory"> <span> <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/io/audio">io/audio</a> </span> <div class="UnitDirectories-mobileSynopsis"></div> </div> </td> <td class="UnitDirectories-desktopSynopsis"></td><tr data-id="pkg-io/video" class=""> <td> <div class="UnitDirectories-subdirectory"> <span> <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/io/video">io/video</a> </span> <div class="UnitDirectories-mobileSynopsis"></div> </div> </td> <td class="UnitDirectories-desktopSynopsis"></td><tr data-id="pkg-prop" class=""> <td> <div class="UnitDirectories-subdirectory"> <span> <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/prop">prop</a> </span> <div class="UnitDirectories-mobileSynopsis"></div> </div> </td> <td class="UnitDirectories-desktopSynopsis"></td><tr data-id="pkg-wave" class=""> <td> <div class="UnitDirectories-subdirectory"> <span> <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/wave">wave</a> </span> <div class="UnitDirectories-mobileSynopsis">Package wave implements a basic audio data library.</div> </div> </td> <td class="UnitDirectories-desktopSynopsis">Package wave implements a basic audio data library.</td><tr data-id="pkg-wave/mixer" class=""> <td> <div class="UnitDirectories-subdirectory"> <span> <a href="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e/pkg/wave/mixer">wave/mixer</a> </span> <div class="UnitDirectories-mobileSynopsis"></div> </div> </td> <td class="UnitDirectories-desktopSynopsis"></td></tr> </table> </div> </div> </div> <div id="showInternal-description" hidden> Click to show internal directories. </div> <div id="hideInternal-description" hidden> Click to hide internal directories. </div> </article> <footer class="go-Main-footer"></footer> </main> <footer class="go-Footer"> <div class="go-Footer-links"> <div class="go-Footer-linkColumn"> <a href="https://go.dev/solutions" class="go-Footer-link go-Footer-link--primary" data-gtmc="footer link"> Why Go </a> <a href="https://go.dev/solutions#use-cases" class="go-Footer-link" data-gtmc="footer link"> Use Cases </a> <a href="https://go.dev/solutions#case-studies" class="go-Footer-link" data-gtmc="footer link"> Case Studies </a> </div> <div class="go-Footer-linkColumn"> <a href="https://learn.go.dev/" class="go-Footer-link go-Footer-link--primary" data-gtmc="footer link"> Get Started </a> <a href="https://play.golang.org" class="go-Footer-link" data-gtmc="footer link"> Playground </a> <a href="https://tour.golang.org" class="go-Footer-link" data-gtmc="footer link"> Tour </a> <a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="go-Footer-link" data-gtmc="footer link"> Stack Overflow </a> <a href="https://go.dev/help" class="go-Footer-link" data-gtmc="footer link"> Help </a> </div> <div class="go-Footer-linkColumn"> <a href="https://pkg.go.dev" class="go-Footer-link go-Footer-link--primary" data-gtmc="footer link"> Packages </a> <a href="/std" class="go-Footer-link" data-gtmc="footer link"> Standard Library </a> <a href="/golang.org/x" class="go-Footer-link" data-gtmc="footer link"> Sub-repositories </a> <a href="https://pkg.go.dev/about" class="go-Footer-link" data-gtmc="footer link"> About Go Packages </a> </div> <div class="go-Footer-linkColumn"> <a href="https://go.dev/project" class="go-Footer-link go-Footer-link--primary" data-gtmc="footer link"> About </a> <a href="https://go.dev/dl/" class="go-Footer-link" data-gtmc="footer link">Download</a> <a href="https://go.dev/blog" class="go-Footer-link" data-gtmc="footer link">Blog</a> <a href="https://github.com/golang/go/issues" class="go-Footer-link" data-gtmc="footer link"> Issue Tracker </a> <a href="https://go.dev/doc/devel/release.html" class="go-Footer-link" data-gtmc="footer link"> Release Notes </a> <a href="https://blog.golang.org/go-brand" class="go-Footer-link" data-gtmc="footer link"> Brand Guidelines </a> <a href="https://go.dev/conduct" class="go-Footer-link" data-gtmc="footer link"> Code of Conduct </a> </div> <div class="go-Footer-linkColumn"> <a href="https://www.twitter.com/golang" class="go-Footer-link go-Footer-link--primary" data-gtmc="footer link"> Connect </a> <a href="https://www.twitter.com/golang" class="go-Footer-link" data-gtmc="footer link"> Twitter </a> <a href="https://github.com/golang" class="go-Footer-link" data-gtmc="footer link">GitHub</a> <a href="https://invite.slack.golangbridge.org/" class="go-Footer-link" data-gtmc="footer link"> Slack </a> <a href="https://reddit.com/r/golang" class="go-Footer-link" data-gtmc="footer link"> r/golang </a> <a href="https://www.meetup.com/pro/go" class="go-Footer-link" data-gtmc="footer link"> Meetup </a> <a href="https://golangweekly.com/" class="go-Footer-link" data-gtmc="footer link"> Golang Weekly </a> </div> </div> <div class="go-Footer-bottom"> <img class="go-Footer-gopher" width="1431" height="901" src="/static/shared/gopher/pilot-bust-1431x901.svg" alt="Gopher in flight goggles"> <ul class="go-Footer-listRow"> <li class="go-Footer-listItem"> <a href="https://go.dev/copyright" data-gtmc="footer link">Copyright</a> </li> <li class="go-Footer-listItem"> <a href="https://go.dev/tos" data-gtmc="footer link">Terms of Service</a> </li> <li class="go-Footer-listItem"> <a href="http://www.google.com/intl/en/policies/privacy/" data-gtmc="footer link" target="_blank" rel="noopener"> Privacy Policy </a> </li> <li class="go-Footer-listItem"> <a href="https://go.dev/s/pkgsite-feedback" target="_blank" rel="noopener" data-gtmc="footer link"> Report an Issue </a> </li> <li class="go-Footer-listItem"> <button class="go-Button go-Button--text go-Footer-toggleTheme js-toggleTheme" aria-label="Theme Toggle"> <img data-value="auto" class="go-Icon go-Icon--inverted" height="24" width="24" src="/static/shared/icon/brightness_6_gm_grey_24dp.svg" alt="System theme"> <img data-value="dark" class="go-Icon go-Icon--inverted" height="24" width="24" src="/static/shared/icon/brightness_2_gm_grey_24dp.svg" alt="Dark theme"> <img data-value="light" class="go-Icon go-Icon--inverted" height="24" width="24" src="/static/shared/icon/light_mode_gm_grey_24dp.svg" alt="Light theme"> <p> Theme Toggle </p> </button> </li> <li class="go-Footer-listItem"> <button class="go-Button go-Button--text go-Footer-keyboard js-openShortcuts" aria-label="Shorcuts Modal"> <img class="go-Icon go-Icon--inverted" height="24" width="24" src="/static/shared/icon/keyboard_grey_24dp.svg" alt=""> <p> Shortcuts Modal </p> </button> </li> </ul> <a class="go-Footer-googleLogo" href="https://google.com" target="_blank"rel="noopener" data-gtmc="footer link"> <img class="go-Footer-googleLogoImg" height="24" width="72" src="/static/shared/logo/google-white.svg" alt="Google logo"> </a> </div> </footer> <dialog id="jump-to-modal" class="JumpDialog go-Modal go-Modal--md js-modal"> <form method="dialog" data-gmtc="jump to form" aria-label="Jump to Identifier"> <div class="Dialog-title go-Modal-header"> <h2>Jump to</h2> <button class="go-Button go-Button--inline" type="button" data-modal-close data-gtmc="modal button" aria-label="Close" > <img class="go-Icon" height="24" width="24" src="/static/shared/icon/close_gm_grey_24dp.svg" alt="" /> </button> </div> <div class="JumpDialog-filter"> <input class="JumpDialog-input go-Input" autocomplete="off" type="text"> </div> <div class="JumpDialog-body go-Modal-body"> <div class="JumpDialog-list"></div> </div> <div class="go-Modal-actions"> <button class="go-Button" data-test-id="close-dialog">Close</button> </div> </form> </dialog> <dialog class="ShortcutsDialog go-Modal go-Modal--sm js-modal"> <form method="dialog"> <div class="go-Modal-header"> <h2>Keyboard shortcuts</h2> <button class="go-Button go-Button--inline" type="button" data-modal-close data-gtmc="modal button" aria-label="Close" > <img class="go-Icon" height="24" width="24" src="/static/shared/icon/close_gm_grey_24dp.svg" alt="" /> </button> </div> <div class="go-Modal-body"> <table> <tbody> <tr><td class="ShortcutsDialog-key"> <strong>?</strong></td><td> : This menu</td> </tr> <tr><td class="ShortcutsDialog-key"> <strong>/</strong></td><td> : Search site</td> </tr> <tr><td class="ShortcutsDialog-key"> <strong>f</strong> or <strong>F</strong></td><td> : Jump to</td> </tr> <tr> <td class="ShortcutsDialog-key"><strong>y</strong> or <strong>Y</strong></td> <td> : Canonical URL</td> </tr> </tbody> </table> </div> <div class="go-Modal-actions"> <button class="go-Button" data-test-id="close-dialog">Close</button> </div> </form> </dialog> <section class="Cookie-notice js-cookieNotice"> <div>go.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic. <a target=_blank href="https://policies.google.com/technologies/cookies">Learn more.</a></div> <div><button class="go-Button">Okay</button></div> </section> <script> // this will throw if the querySelector can鈥檛 find the element const gtmId = document.querySelector('.js-gtmID').dataset.gtmid; if (!gtmId) { throw new Error('Google Tag Manager ID not found'); } loadScript(`https://www.googletagmanager.com/gtm.js?id=${gtmId}`); </script> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG" height="0" width="0" style="display:none;visibility:hidden"> </iframe> </noscript> <div class="js-canonicalURLPath" data-canonical-url-path="/gitee.com/zengyongheng/gocvwinmedia@v0.0.0-20210707165908-0bf383f7f91e" hidden></div> <div class="js-playgroundVars" data-modulepath="gitee.com/zengyongheng/gocvwinmedia" data-version="v0.0.0-20210707165908-0bf383f7f91e" hidden></div> <script> loadScript('/static/frontend/unit/main/main.js') </script> <script> loadScript('/static/frontend/unit/unit.js') </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10