live

package
v0.7.18 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 9, 2023 License: GPL-3.0 Imports: 9 Imported by: 0

Documentation

Overview

Package live 提供了用于处理各种直播平台的接口和工具函数。

Index

Constants

This section is empty.

Variables

View Source
var CommonUserAgent = requests.UserAgent(userAgent)

CommonUserAgent 是一个常用的 HTTP User-Agent 头,模拟 Chrome 浏览器的用户代理。

View Source
var ErrInternalError = errors.New("internal error")

ErrInternalError 表示内部错误的错误。

View Source
var ErrRoomNotExist = errors.New("room not exists")

ErrRoomNotExist 表示房间不存在的错误。

View Source
var ErrRoomUrlIncorrect = errors.New("room url incorrect")

ErrRoomUrlIncorrect 表示房间 URL 不正确的错误。

Functions

func Register

func Register(domain string, b Builder)

Register 函数用于注册直播平台的构建器。

Types

type Builder

type Builder interface {
	Build(*url.URL, ...Option) (Live, error)
}

Builder 接口定义了直播平台构建器的方法。

type ID

type ID string

ID 类型用于表示直播的唯一标识。

type Info

type Info struct {
	Live                          Live
	HostName, RoomName            string
	RtmpUrl                       string
	Status                        bool // 表示是否正在直播,可能最好重命名为 IsLiving
	Listen, Record, Push          bool
	Listening, Recording, Pushing bool
	Initializing                  bool
	CustomLiveId                  string
	AudioOnly                     bool
}

Info 结构体用于存储直播信息,包括主播名、房间名、状态等。

func (*Info) MarshalJSON

func (i *Info) MarshalJSON() ([]byte, error)

MarshalJSON 方法用于将 Info 结构体序列化为 JSON 格式。

type InitializingFinishedParam

type InitializingFinishedParam struct {
	InitializingLive Live
	Live             Live
	Info             *Info
}

InitializingFinishedParam 结构体包含了初始化完成后的参数。

type InitializingLiveBuilder

type InitializingLiveBuilder interface {
	Build(Live, *url.URL, ...Option) (Live, error)
}

InitializingLiveBuilder 接口定义了初始化直播平台的构建器方法。

var (
	InitializingLiveBuilderInstance InitializingLiveBuilder
)

初始化直播平台构建器的映射,用于注册不同平台的构建器实现。

type Live

type Live interface {
	SetLiveIdByString(string)
	GetLiveId() ID
	GetRawUrl() string
	GetInfo() (*Info, error)
	GetStreamUrls() ([]*url.URL, error)
	GetPlatformCNName() string
	GetLastStartTime() time.Time
	SetLastStartTime(time.Time)
}

Live 接口定义了直播平台的基本方法。

func New

func New(url *url.URL, cache gcache.Cache, opts ...Option) (live Live, err error)

New 函数用于创建一个直播平台实例。

type Option

type Option func(*Options)

Option 类型定义了设置选项的函数签名。

func WithKVStringCookies

func WithKVStringCookies(u *url.URL, cookies string) Option

WithKVStringCookies 函数用于设置 cookies 选项,接收键值对字符串。

func WithQuality

func WithQuality(quality int) Option

WithQuality 函数用于设置视频质量选项。

type Options

type Options struct {
	Cookies *cookiejar.Jar
	Quality int
}

Options 结构体包含了直播平台的选项,如 cookies 和视频质量等。

func MustNewOptions

func MustNewOptions(opts ...Option) *Options

MustNewOptions 函数用于创建新的选项,如果出错则 panic。

func NewOptions

func NewOptions(opts ...Option) (*Options, error)

NewOptions 函数用于创建新的选项。

type StreamUrlInfo

type StreamUrlInfo struct {
	Url         *url.URL
	Name        string
	Description string
	Priority    int
}

StreamUrlInfo 结构体包含了直播流的相关信息。

type WrappedLive

type WrappedLive struct {
	Live
	// contains filtered or unexported fields
}

WrappedLive 结构体用于包装实现了 Live 接口的对象,添加了缓存功能。

func (*WrappedLive) GetInfo

func (w *WrappedLive) GetInfo() (*Info, error)

GetInfo 方法用于获取直播信息,同时支持缓存功能。

Directories

Path Synopsis
包 douyu 包含了与斗鱼直播平台相关的代码。
包 douyu 包含了与斗鱼直播平台相关的代码。
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL